[SQL ] MySQL中有關left join的問題
我現在有兩個資料表
Table People
PK: ID
ID Name
------------
1 Sally
2 Michell
3 Sam
4 Tony
Table ActRecord
PK: ID, Value
ID Value
-------------
1 1
2 1
1 2
3 3
想要抓出在ActRecord中沒有Value=1的資料的所有人名:
Name
------------
Sam
Tony
第一個做法是用subquery:
SELECT Name
FROM People
WHERE ID NOT
IN (
SELECT ID
FROM ActRecord
WHERE Value = '1'
);
這個可以正常跑出結果 但performance有點差
改用left join搭配is null時卻抓不到半筆資料:
SELECT Name
FROM People
LEFT JOIN ActRecord
ON People.ID = ActRecord.ID
WHERE ActRecord.Value = '1'
AND ActRecord.ID IS NULL;
想請問一下 我left join這部分有哪裡該做修正的
感謝指教orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.130.94
→
02/03 12:32, , 1F
02/03 12:32, 1F
→
02/03 12:33, , 2F
02/03 12:33, 2F
推
02/03 12:36, , 3F
02/03 12:36, 3F
→
02/03 12:43, , 4F
02/03 12:43, 4F
Database 近期熱門文章
PTT數位生活區 即時熱門文章