这是table1:
id name m1 m2 m3 total itemno 1 raj 10 10 10 30 1 2 ram 60 60 60 180 1 3 kumar 70 70 70 210 1 4 kanna 50 50 50 150 1 5 vivek 64 64 91 200 1 5 vivek 90 90 90 270 2
这是table2:
id name mark1 mark2 mark3 itemno 101 vivek 78 78 78 1 102 vivekkanna 89 88 78 1 103 rajagopalan 97 90 98 1 104 kumar 69 54 56 1 101 vivek 90 90 90 2
我想将这两个表连接成一个如下所示的结果集:
id name m1 m2 m3 total mark1 mark2 mark3 item no 1 raj 10 10 10 30 0 0 0 1 2 ram 60 60 60 180 0 0 0 1 3 kumar 70 70 70 210 69 54 56 1 4 kanna 50 50 50 150 0 0 0 1 5 vivek 64 64 91 200 78 78 78 1 5 vivek 90 90 90 270 90 90 90 2
答案 0 :(得分:0)
似乎你想要一个常规的LEFT JOIN,如果table2中的行不存在,则返回一个默认值;
SELECT t1.id, t1.name, t1.m1, t1.m2, t1.m3,
COALESCE(t2.mark1, 0) mark1, COALESCE(t2.mark2, 0) mark2, t1.itemno
FROM table1 t1
LEFT JOIN table2 t2 ON t1.name = t2.name AND t1.itemno = t2.itemno
ORDER BY t1.id, t1.itemno
我们使用LEFT JOIN来获取与table1中的行不匹配的所有table2字段的默认NULL值,然后使用COALESCE将它们变为0。