1

クエリに 3 セットの行が必要で、それぞれに 100 行が必要です。異なるデータ値を持つ各セット。このように:

$result = mysql_query("SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='24' ORDER BY count DESC LIMIT 100") or die(mysql_error());
$result .= mysql_query("SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='23' ORDER BY count DESC LIMIT 100") or die(mysql_error());
$result .= mysql_query("SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='22' ORDER BY count DESC LIMIT 100") or die(mysql_error());

1 回のクエリで結果を取得するにはどうすればよいですか?

ありがとう。

4

5 に答える 5

3

使用UNION:

SELECT * FROM tableA UNION SELECT * FROM tableB UNION SELECT * FROM tableC
于 2013-06-06T12:40:13.093 に答える
2

使用するunion

    $final_query=$query1." union ".$query2." union ".$query3;

    and 
    mysql_query($final_query);
于 2013-06-06T12:40:34.013 に答える
2

ユニオンライクを試す

SELECT * FROM tableA UNION SELECT * FROM tableB UNION SELECT * FROM tableC

重複も許可したい場合は、次UNION ALLのように試してください

SELECT * FROM tableA UNION ALL SELECT * FROM tableB UNION ALL SELECT * FROM tableC
于 2013-06-06T12:42:23.743 に答える
1

UNIONを使用してこの作業を行うことができます

(SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='24' ORDER BY count DESC LIMIT 100) 
UNION
(SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='23' ORDER BY count DESC LIMIT 100)
UNION
(SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='22' ORDER BY count DESC LIMIT 100)
于 2013-06-06T12:41:38.357 に答える
1

1 つの方法は、 を使用することUNIONです。

$result = mysql_query("
  (SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='24' ORDER BY count DESC LIMIT 100)
  UNION
  (SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='23' ORDER BY count DESC LIMIT 100)
  UNION
  (SELECT * FROM actions WHERE appid='$appid' AND email!='' AND user_name!='' AND data='22' ORDER BY count DESC LIMIT 100)
");

その他のオプションはこちら.

于 2013-06-06T12:43:00.917 に答える