[SQL ] MySQL中有關left join的問題

看板Database (資料庫)作者 (passersby)時間16年前 (2010/02/03 12:27), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
我現在有兩個資料表 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
AND改OR?
02/03 12:32, 1F

02/03 12:33, , 2F
改成OR 抓出來的資料不是我要的orz
02/03 12:33, 2F

02/03 12:36, , 3F
有試過把ActRecord.Value = '1' 放到LEFT JOIN條件去嗎?
02/03 12:36, 3F

02/03 12:43, , 4F
感謝樓上 可以了:D
02/03 12:43, 4F
文章代碼(AID): #1BQFjD44 (Database)
文章代碼(AID): #1BQFjD44 (Database)