我有两张桌子:
表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
有谁知道如何解决这个问题?
答案 0 :(得分:1)
我在这个fiddle中得到了正确的结果。
| ID | M1 | MID |
|----|--------|--------|
| 1 | a | 1 |
| 2 | b | (null) |
| 3 | (null) | (null) |
它也适用于空字符串。您提到的最终行为违反了左连接。
答案 1 :(得分:0)
NULL比较结果为unknown,因此您可能希望将NULL替换为JOIN条件中的某些内容。
答案 2 :(得分:0)
我已经更新了Mosty Mostacho的小提琴(我不够高,以回复答案)所以这是使用空字符串而不是NULL http://sqlfiddle.com/#!2/48d78/5
| ID | M1 | MID |
|----|--------|--------|
| 1 | a | 1 |
| 2 | b | |
| 3 | | |