我有 3 张桌子:table1、table2 和 table3
我从 table1 进行选择查询,它 LEFT JOINS 其他两个表。在选择中,我有一个 group_concat,它从 table3 中获取一个值。一切正常,直到不存在具有特定行的行。group_concat 列表变为空。相反,我希望它将 group_concat 中的值设置为 NULL 用于行不存在的那些。
就像我说的,如果 table2 中的所有行都存在 table3 中的值,那么它就可以工作。如果不是,则整个 group_concat 为空。
到目前为止我得到的一些“简化”代码:
SELECT
table1.table2Id,
table1.dateAdded,
IF(COUNT(table2.table3Id) = COUNT(*), GROUP_CONCAT(table2.table3Id), NULL) as group1,
IF(COUNT(table3.ext) = COUNT(*), GROUP_CONCAT(table3.ext), NULL) as group2
FROM table1
LEFT JOIN table2 ON
table2.id = table1.table2Id
LEFT JOIN table3 ON
table3.id = table2.table3Id