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 c.id";

问题是,从table3(或table c)我在该条件下有 5 个匹配行,(a.id = c.id2)在最终结果中,我只有来自其中一个匹配行的信息。我的子句应该是什么,GROUP BY以便我可以从所有 5 个匹配行中获取数据table c,而不仅仅是来自第一个匹配行的数据?

4

1 回答 1

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) 的结果进行分组。

于 2013-11-12T15:19:03.427 回答