php - 在现有语句中添加联接

标签 php mysql join inner-join

我有一个包含多个连接的 SQL 语句,运行时没有任何问题

$sql = "SELECT ni.*, GROUP_CONCAT(DISTINCT newsletter_item_receivers.value ORDER BY newsletter_item_receivers.value) AS receivers, nf.*, GROUP_CONCAT(DISTINCT nm.mailgroup_name ORDER BY nm.mailgroup_name) AS mailgroups
        FROM newsletter_items ni
        INNER JOIN newsletter_fields nf ON (nf.field_letter_uid = ni.letter_id)                    
        LEFT JOIN newsletter_item_receivers ON (newsletter_item_receivers.letter_id = ni.letter_id)
        INNER JOIN newsletter_mailgroups nm ON (FIND_IN_SET(nm.mailgroup_id, newsletter_item_receivers.value))            
        WHERE nf.field_name = 'letter_headline' AND ni.template = '". $template ."' AND deleted = 0
        GROUP BY ni.letter_id

我想要的是加入来自 newsletter_clickstat 的数据,其中包含有关特定新闻通讯上的链接的 ifo(例如链接的点击次数)。

我尝试插入

LEFT JOIN newsletter_clickstat cs ON (cs.letter_id = ni.letter_id)

但这并没有起到任何作用

已解决:

    SELECT ni.*, GROUP_CONCAT(DISTINCT newsletter_item_receivers.value ORDER BY newsletter_item_receivers.value) AS receivers, nf.*, GROUP_CONCAT(DISTINCT nm.mailgroup_name ORDER BY nm.mailgroup_name) AS mailgroups, cs.*
    FROM newsletter_items ni
    INNER JOIN newsletter_fields nf ON (nf.field_letter_uid = ni.letter_id)                    
    LEFT JOIN newsletter_item_receivers ON (newsletter_item_receivers.letter_id = ni.letter_id)
    INNER JOIN newsletter_mailgroups nm ON (FIND_IN_SET(nm.mailgroup_id, newsletter_item_receivers.value)) 
    LEFT JOIN newsletter_clickstat cs ON (cs.letter_id = ni.letter_id)                 
    WHERE nf.field_name = 'letter_headline' AND ni.template = '". $template ."' AND deleted = 0
    GROUP BY ni.letter_id

最佳答案

(升级到答案)

您还需要从 newsletter_clickstat 中选择您想要在结果集中出现的列...请记住,您正在执行分组操作,因此需要应用聚合函数或更改您执行分组的列。

关于php - 在现有语句中添加联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10834782/

相关文章:

javascript - 使用.change javascript计算排除周末的2个日期

PHP 和 MySQL 为世界语言带来了问号

mysql - MySQL 设计中的多行与逗号分隔列

mysql - 获得接近特定数字的结果

SQL 选择 table1.column 作为 table1.column

mysql - INNER JOIN MySQL 空条目

php - 我将如何设置横幅或如何从我的页面中删除此空间

php - inner join large table with small table ,如何加速

java - spring jdbctemplate批量更新快速替代

mysql - 如何合并 mysql 中的这些列还是应该使用另一个连接?