0

同じフィールドを持つ2つのテーブルがあります。(デザインのせいにしないでください)。
以下はスキーマの例のみ

表 A
ID
名前
電話
キー

テーブル B
ID
名前
キー
アドレス

したがって、単一のクエリで条件「キー」を満たすテーブル A または B のいずれかから ID、名前をクエリしたい

SELECT a.id, a.name, b.id, b.name FROM TABELA as a, TABLEB as b WHERE a.keys = '1' または b.keys = '1'

重複した id、name、id1、name1 を結果フィールドに返します。

4

3 に答える 3

1

ユニオンまたはユニオンオールを使用してください。ユニオンは個別の行のみを返し、ユニオンはすべてすべての行を返します

ユニオンのマニュアルマニュアルの例を参照してください

SELECT a.id, a.name FROM TABELA as a WHERE a.keys = '1' 
union
SELECT b.id, b.name FROM TABELb as b WHERE b.keys = '1' 
于 2013-09-27T09:18:31.653 に答える
1

UNIONの代わりに使用CROSS JOIN:

SELECT a.id, a.name
FROM TABELA as a
WHERE a.keys = '1'
UNION 
SELECT b.id, b.name 
FROM TABLEB as b
WHERE b.keys = '1'
于 2013-09-27T09:19:53.990 に答える
1

実際にはテーブルを結合していませんが、2 つの異なるクエリの結果を結合したいだけです。そのためのUNION SELECTがあります:

SELECT id, name FROM tableA
    WHERE keys = '1'
UNION SELECT id, name FROM tableB
    WHERE keys= '1'

結果を並べ替えたい場合は、上記をサブクエリとして使用できます。

于 2013-09-27T09:20:41.667 に答える