2015-05-28 84 views
0

我是Sql的新手。我有兩張桌子SQL選擇插入條件(在這兩個表之間)

table_A (student_id, last_name, email, schoolA, ...) 

table_B (student_id, last_name, email, schoolB, ...) 

而在table_A中,一些student_id是Null或''(空)。

選擇表-B的student_id數據插入到表-A的student_id數據科爾姆

時只匹配姓氏和電子郵件,也當A.student_id爲空或空 。

這裏是我的想法

INSERT INTO table_A (student_id) 
SELECT student_id 
    From table_B 
    WHERE table_A.last_name = table_B.last_name AND table_A.email = table_B.email 
     AND table_A.student_id ='' OR table_A.student_id = NULL 

我知道我寫的是沒有任何意義的SQL。我只想得到一個簡單的例子或一些想法。

謝謝!

+3

這看起來太像功課。 –

+0

因爲我使用學生ID和shcool?哈哈。不,這不是家庭作業。實際上這是我實習生的一項任務。 –

+0

是否允許'student_id'列的值爲空?我看到的唯一可以改變的是檢查'student_id'是否爲空。您可以執行'AND IFNULL(table_A.student_id,'')=''' –

回答

0

這聽起來更像是UPDATE聲明,而不是INSERT

UPDATE A 
SET A.student_id = B.student_id 
FROM table_A A 
INNER JOIN table_B B 
    ON A.last_name = B.last_name 
    AND A.email = B.email 
WHERE (A.student_id ='' OR A.student_id IS NULL) 

通知你比較student_id數據到IS NULL,不= NULL。圓括號也很重要。

+0

非常感謝,經過一些修改,它的工作原理 –

0

反正試試這個:

INSERT INTO table_A (STUDENT_ID) 
SELECT B.student_id 
    From table_B AS B, TABLE_A AS A 
    WHERE (A.last_name = B.last_name AND A.email = B.email) 
     OR A.STUDENT_ID ='' OR A.STUDENT_ID IS NULL