質問

あるとしましょうテーブル:

itemid mark
1      5
2      3

テーブルB

itemid mark
1      3
3      5

また、私*B A.itemid=B.itemidの両方を左右する。すなわち結果:

itemid A.mark B.mark
1      5      3
2      3      NULL
3      NULL   5

があるのではないで一つのクエリにMySQL?

役に立ちましたか?

解決

で、フルの外側joinで対応していないネイティブMySQLでは、次 docs.できるのはこの制限をEUに記載のとおりコメントのページでのリンクです。

[編集]からの他に掲載ぐに、ここにとても苦手なのでお願いします。きの説明リンク先のページです。

SELECT *
FROM A LEFT JOIN B ON A.id = B.id
UNION ALL
SELECT *
FROM A RIGHT JOIN B ON A.id = B.id
WHERE A.id IS NULL

他のヒント

い作品がここにはsql

select distinct T.itemid, A.mark as "A.mark", B.mark as "B.mark"
    from (select * from A union select * from B) T 
    left join A on T.itemid = A.itemid 
    left join B on T.itemid = B.itemid;

この頼りにleft joinを返します全ての行を元のテーブル(この場合はこの限りではあるsubselect表します。条件が満たすものがない場合は、参加テーブルは、その設定のカラムをNULLにします。

この作品ってSQLサーバー:

select isnull(a.id, b.id), a.mark, b.mark
from a 
full outer join b on b.id = a.id
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top