0

我有两张桌子:</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

我在这个小提琴中得到了正确的结果。

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

它也适用于空字符串。您提到的结果行为与左连接相反。

于 2013-10-17T03:28:58.000 回答
0

NULL 比较结果未知,因此您可能希望将 NULL 替换为 JOIN 条件中的某些内容。

于 2013-10-17T03:27:50.230 回答
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 回答