0

2 つのテーブルがあります:</p>

テーブルA: テーブルB:

id m1             id  m2
------            -------
1  a              1   a
2  b              2   c
3                 3   d

SQLを実行すると:

select A.*,B.id as mid from A left join B on A.m1 = b.m2

結果を取得したい:

id   m1   mid
--------------
1    a   1
2    b   
3            

しかし、私は得る:

  id   m1   mid
    --------------
    1    a   1
    2    b     

これを修正する方法を知っている人はいますか?

4

3 に答える 3

1

このfiddleで正しい結果が得られます。

| ID |     M1 |    MID |
|----|--------|--------|
|  1 |      a |      1 |
|  2 |      b | (null) |
|  3 | (null) | (null) |

空の文字列に対しても機能します。あなたが言及している結果の動作は、左結合に反します。

于 2013-10-17T03:28:58.000 に答える
0

Mosty Mostacho のフィドルを更新しました (回答に返信するのに十分な担当者ではありません) ので、NULL の代わりに空の文字列を使用します http://sqlfiddle.com/#!2/48d78/5

| ID |     M1 |    MID |
|----|--------|--------|
|  1 |      a |      1 |
|  2 |      b |        |
|  3 |        |        |
于 2013-10-17T03:44:13.393 に答える
0

NULL 比較の結果は不明になるため、NULL を JOIN 条件の何かに置き換えたい場合があります。

于 2013-10-17T03:27:50.230 に答える