0

最初の 2 つのテーブルに関連するすべての ID フォーム table3 をカウントしようとしていますが、SQL コードが間違っていると思います。

コードは次のとおりです。

$dbc = mysqli_query($mysqli,"SELECT table1.*, table2.*, COUNT(id) as num, table3.id
                             FROM table1
                             INNER JOIN table2 ON table1.id = table2.id
                             INNER JOIN table3 ON table2.id = table3.id
                             WHERE table2.id = '$id'");

エラーメッセージは次のとおりです。

1140: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
4

2 に答える 2

0

最初に結果を ingCOUNT()せずに集計関数 を使用しようとしています。また、エイドリアンのクエリと同様に、あいまいさGROUPの少ない「id」列を作成する必要があります。次のクエリを試してください。COUNT()

SELECT table1.*, table2.*, COUNT(table3.id) as num, table3.id
  FROM table3, table2, table1    
WHERE table1.id = table2.id     
  AND table2.id = table3.id    
  AND table2.id = $id  
GROUP BY
  table1.*,
  table2.*,
  table3.id

集計関数とクエリ内のあいまいな列名の詳細については、MySQL Reference Manual for Group By Functions and Indentifier Qualifiersを確認してください。

于 2010-05-28T07:00:34.933 に答える
0

これを試すことができますか?

SELECT COUNT(table3.id) as num
  FROM table3, table2, table1
WHERE table1.id = table2.id 
  AND table2.id = table3.id
  AND table2.id = $id
于 2010-05-28T06:47:04.193 に答える