1

質問があります

"select * from test";

テスト後にUNIONを追加する必要があります

"select * from test union"

連結ではありません。

クエリにユニオンを追加するにはどうすればよいですか?

アップデート

select * from x where id = "2" union select * from y where id = "2" union select * from z where id = "2"
select * from x where id = "3" union select * from y where id = "3" union select * from z where id = "3"

selectステートメントid=3を参照してください、ユニオンがありません。ここで、このユニオンをクエリに追加して、最後の余分なユニオンを実行および削除し、クエリをmysql_query()関数に渡す必要があります。

4

3 に答える 3

2

ここでUNIONが行うことは、2つの別々のSELECTクエリの結果を組み合わせることです。

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

また

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

重複する場合は、UNIONALLを使用してください

編集:

これを使用する代わりに、OUTER JOINSLEFTJOINを使用してください

彼らははるかに優れています。正確な結果が得られるまでお待ちください。クエリを作成します。

編集:

SELECT * FROM tablename_1 temp_name_1 
LEFT JOIN tablename_2 temp_name_2 ON temp_name_1.id=temp_name_2.id 
LEFT JOIN tablename_3 temp_name_3 ON temp_name_1.id=temp_name_3.id 
WHERE temp_name_1.id = "2"

ここで、tablename_1はx、tablename_2はy、tablename_3はyです。

temp_name_1、temp_name_2、temp_name_3は、好きな名前です。これらは一時的な名前なので、temp_name_を削除できますか?テーブルの元の名前を使用できます。

編集:

これを使用して、選択したステートメントを結合します。

$string = "";
$string .= (!empty($string)?" UNION ":" ")."Your query here";

ループ内かどうか、それ以外の場合は

于 2012-05-01T10:46:55.720 に答える
0

このようなことを試してください

  SELECT * FROM test
  UNION
  SELECT * FROM test1
于 2012-05-01T10:50:36.300 に答える
-1
$var1 = "Select * from test";
$vart2 = "union";
$vart3  =  var1." ".var2;
echo $var3;
于 2012-05-01T10:45:15.320 に答える