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)あり、最終結果には一致する行の1つからの情報しかないことです。最初に一致した行からのデータだけでなく、 から 5 つの一致するすべての行からデータを取得できるようにするには、どのGROUP BY句を使用すればよい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 に答える