我有这个问题:
$sql = "SELECT a.id,b.*,c.*
FROM table1 a
left join table2 b on a.id=b.id1
left join table3 c on a.id = c.id2
WHERE b.field='name' and a.id=$id
GROUP BY c.id";
问题是从table3
(或table c
)我在该条件(a.id = c.id2)
上有5个匹配行,而在最终结果中,我只有一个匹配行的信息。什么应该是我的GROUP BY
子句,这样我才能从table c
的所有5个匹配行中获取数据,而不仅仅是来自第一个匹配行的数据?
答案 0 :(得分:0)
试试这个:
$sql = "SELECT a.id, b.*, c.* FROM table1 a
LEFT JOIN table2 b ON a.id=b.id1
LEFT JOIN table3 c ON a.id = c.id2
WHERE b.field='name' and a.id=$id
GROUP BY a.id, c.id";
它将对具有相同对的结果进行分组(a.id,c.id)。