質問
い合opertaionとテーブル
SELECT ID_1,
name_1,
surname_1,
FROM T_ONE
UNION
SELECT ID_2,
name_2,
surname_2
FROM TABLE_2
また、私はこの UNION
動作の別のテーブルもすべての TABLE_1
.
どのように取り扱っておりこの新しいテーブルの結果 UNION
.
例えば、前後 UNION
:
RIGHT JOIN TABLE_3
ON TABLE_3.ID_3 = XXXXXXXXXXXXXXXXXXXX.ID_2
私は何が入っているか分からないあげるの代わりにXXXXXXXXXXXXXXXXにandleの新しいテーブル発生する UNION
.
解決
利用派生テーブルのように"foo"ここでは、その入していただいてかまいません:
SELECT
*
FROM
TABLE_3
LEFT JOIN
(
SELECT ID_1, name_1, surname_1, FROM T_ONE
UNION --ALL would be more efficient if results do not overlap, as van's comment said
SELECT ID_2, name_2, surname_2 FROM TABLE_2
) foo ON TABLE_3.ID_3 = foo.ID_1
PS.利用左加:少なくその権利が仲間入り。
他のヒント
を提供する必要がありますの参加の両方を選択:
SELECT ID_1, name_1, surname_1, FROM T_ONE
RIGHT JOIN TABLE_3 ON TABLE_3.ID_3 = T_ONE.ID_1
UNION
SELECT ID_2, name_2, surname_2 FROM TABLE_2
RIGHT JOIN TABLE_3 ON TABLE_3.ID_3 = TABLE_2.ID_2
があります。ることを忘れないでくださいEUが不要な重複をなしたい場合は複製を含めることuyse EUのすべて
SELECT ID_1, name_1, surname_1, FROM T_ONE
from
(SELECT ID_1, name_1, surname_1, FROM T_ONE
UNION
SELECT ID_2, name_2, surname_2 FROM TABLE_2 ) foo
left join TABLE_3
ON TABLE_3.ID_3 =foo.ID_2
の拡大にgbnの答えは、上記の者がおりました。ここではどのようなeuの第一段階として、左ます。
SELECT table3.phone, foo.fname, foo.lname, foo.email
FROM
(SELECT table1.fname,table1.lname,table1.email
FROM table1
UNION
SELECT table2.fname,table2.lname,table2.email
FROM table2
) foo
LEFT JOIN table3
ON foo.lname = table3.lname
所属していません StackOverflow