0

a、b、c、d、e の 5 つのテーブルがあります。

各テーブルは、id フィールドの INNER JOIN によって結合されます。

私のクエリはそのままで問題なく動作していますが、結果をカウントして画面にエコーできるように拡張する必要があります。カウントを機能させることができませんでした。

私が照会している非常に具体的なフィールドがあります。

state_nm
status
loc_type

これらはすべて、次のようにクエリに手動で入力するパラメーターです。

$_POST["state_nm"] = 'AZ'; ... // and for all other below values..

SELECT *
FROM main_table AS a
INNER JOIN table_1 AS b ON a.id = b.id
INNER JOIN table_2 AS c ON b.id = c.id
INNER JOIN blm table_3 AS d ON c.id = d.id
INNER JOIN table_4 AS e ON d.id = e.id
WHERE a.trq != ''
   AND b.state_nm = '".$_POST["state_nm"]."'
   AND b.loc_type LIKE \ "%".$_ POST ["loc_type"]."%\"
   AND b.STATUS = '".$_POST["status"]."'
GROUP BY b.NAME
ORDER BY c.county ASC;
4

2 に答える 2

-1

代わりに

SELECT *

クエリで、それを次のように置き換えることができます

SELECT COUNT(*)

そのクエリは、SELECT * を使用したクエリの結果セットに含まれる行数を返す必要があります。テストが非常に簡単で、結果を比較できます。

それはあなたが尋ねた質問に答えると思います。そうでない場合、私はあなたの質問を理解していませんでした。


クエリの GROUP BY に気づきませんでした。

そのクエリによって返される行数を取得する場合は、外側のクエリでラップします。

SELECT COUNT(1) FROM (
  /* your query here */
 ) c

これにより、クエリによって返される行数が得られます。

于 2013-07-13T02:33:34.287 に答える