簡體   English   中英

我如何在mysql中加入兩個不同的表

[英]how do i join two different tables in mysql

這是表1:

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

這是表2:

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

似乎需要常規的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

要測試的SQLfiddle

我們使用LEFT JOIN獲取與table1中的行不匹配的所有table2字段的默認NULL值,然后使用COALESCE將其改為0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM