2

5つのテーブルのフィールド数を数えて結果を表示したいと思っています。私は現在、単一のテーブルに対してこれを行っています

    $variable = mysql_num_rows(mysql_query("SELECT id FROM table1"));

、、、およびidからすべてを含めてカウントする最も効率的な方法は何ですか?table2table3table4table5

ありがとう

4

6 に答える 6

3

UNION ALLすべてのテーブルのクエリを組み合わせて、SELECTすべてのテーブルからIDの総数を取得するために使用します。代わりに、すべてのテーブルからIDUNIONの総数を取得するために使用します。distinct

$variable = mysql_num_rows(mysql_query("
    "SELECT id FROM table1 " .
    "UNION ALL " .
    "SELECT id FROM table2 " .
    "UNION ALL " .
    "SELECT id FROM table3 " .
    "UNION ALL " .
    "SELECT id FROM table4 " .
    "UNION ALL " .
    "SELECT id FROM table5"));
于 2012-11-30T08:24:25.270 に答える
2

DBからすべての行を取得するのではなく、IDの数を取得するだけです。PHPの代わりにMySQLをカウントさせます。

    $variable1 = mysql_query("SELECT COUNT(id) FROM table1");
    $variable2 = mysql_query("SELECT COUNT(id) FROM table2");
    $variable3 = mysql_query("SELECT COUNT(id) FROM table3");
    $variable4 = mysql_query("SELECT COUNT(id) FROM table4");
    $variable5 = mysql_query("SELECT COUNT(id) FROM table5");

    $variable = $variable1 + $variable2 + $variable3 + $variable4 +$variable5;

UNIONもJOINも作成しないでください。カウントが必要な場合は、大変な作業です。

于 2012-11-30T08:26:14.500 に答える
1

SELECT count(t1.id)+count(t2.id)+count(t3.id)+count(t4.id)+count(t5.id) from table1 as t1, table2 as t2, table3 as t3, table4 as t4, table5 as t5

于 2012-11-30T08:26:58.457 に答える
0
SELECT COUNT(id) FROM table2

于 2012-11-30T08:22:53.047 に答える
0

次のようなユニオン構文を試してください。

$variable = mysql_num_rows(mysql_query("
SELECT * FROM(
  SELECT id FROM table1
  UNION
  SELECT id FROM table2
  UNION
  SELECT id FROM table3
  UNION
  SELECT id FROM table4
  UNION
  SELECT id FROM table5
)unionNum
"));

終わり、頑張って

于 2012-11-30T08:25:31.880 に答える
0

最初の方法:

$query = mysql_query("
    select * from(
        SELECT id FROM table1
        union
        SELECT id FROM table2
        union
        SELECT id FROM table3
        union
        SELECT id FROM table4
    )
");
while ($row = mysql_fetch_assoc($query)) {
    //some operations
}
$variable = mysql_num_rows($query);

2番目の方法:

$query = mysql_query("
    select count(*) cnt from(
        SELECT id FROM table1
        union
        SELECT id FROM table2
        union
        SELECT id FROM table3
        union
        SELECT id FROM table4
    )
");

while ($row = mysql_fetch_assoc($query)) {
    $variable = $query['cnt'];
}
于 2012-11-30T08:26:13.500 に答える