【发布时间】:2012-08-23 07:05:39
【问题描述】:
我有一个问题,但我似乎还没有找到答案(我已经解决了真正的问题)。
我有一个相当大的查询,可以正常工作 .. 3-4 个月,然后通过添加项目和在应用程序中工作进行一些更改后,带有 group_concat 的子查询返回超过 1 行,我指出 group_concat 的点是在 1 行中连接所有项目?!
简化的查询是这样的:
(SELECT * FROM (SELECT id,
(other_selects),
(SELECT GROUP_CONCAT(' ',IF(user_nume IS NOT NULL, (
SELECT CONCAT(user_nume,' ',user_prenume)
FROM table
WHERE u2.user_id = cal_id_user
AND i1.cai_id = cal_id_imobil
), (
SELECT user_company
FROM table
WHERE u2.user_id = cal_id_user
AND i1.cai_id = cal_id_imobil
) ))
FROM table2 u2) as locatari,
( other selects )
.........................
FROM table3 i1
...... JOINS ............
GROUP BY cai_id
ORDER BY cai_id DESC)t" ;)
这个 subqery 返回给我的行数超过 1 行,我不明白如何。
不得不提的是,我删除了表名,在 JOINS 或其他 sintax 错误上没有问题。
这个问题的解决方案是添加一个
GROUP BY cal_id_user
在 IF 条件内的两个 SELECTS 中。
有人可以向我解释一下这个问题是怎么可能的吗?不幸的是,我没有找到此类问题的确切答案。
感谢您的宝贵时间。
【问题讨论】:
标签: mysql subquery group-concat