看板 Database 關於我們 聯絡資訊
我現在有兩個資料表 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
ssccg:AND改OR? 02/03 12:32
passersby:改成OR 抓出來的資料不是我要的orz 02/03 12:33
rushcat:有試過把ActRecord.Value = '1' 放到LEFT JOIN條件去嗎? 02/03 12:36
passersby:感謝樓上 可以了:D 02/03 12:43