我尝试使用MySQL JOIN从数据库中获取一些数据,但直到现在才取得成功
我有table_a(代表订单行):
id idc cPos
1 1 10
2 1 20
3 1 30
4 1 40
5 1 50
6 2 10
7 2 20
8 2 30
9 2 40
10 3 10
11 3 20
12 3 30
13 3 40
14 3 50
和table_b:
delivery_id idc cPos
1 1 10
1 1 50
2 1 20
2 3 40
2 3 50
我想查询以下结果:
id idc cPos delivery_id
1 1 10 1
3 1 30 NULL
4 1 40 NULL
5 1 50 1
6 2 10 NULL
7 2 20 NULL
8 2 30 NULL
9 2 40 NULL
10 3 10 NULL
11 3 20 NULL
12 3 30 NULL
我需要来自table_b的所有记录,其中delivery_id等于1,table_a中的所有记录在table_b中没有corespondent(通过corespondent我理解table_a.idc = table_b.idc AND table_a.cPos = table_b.cPos)
我使用的查询:
SELECT table_a.*, table_b.delivery_id FROM table_a
LEFT JOIN table_b ON (table_a.idc = table_b.idc AND table_a.cPos = table_b.cPos)
WHERE (delivery_id IS NULL OR delivery_id = 1)
有人可以帮助我吗?
答案 0 :(得分:0)
您必须创建两个条件的LEFT JOIN:
SELECT tab_a.*,tab_b.delivery_id
FROM table_a tab_a
LEFT JOIN table_b tab_b ON tab_a.idc=tab_b.idc, tab_a.cPos=tab_b.cPos