假设以下MySQL表结构,为什么以下两个查询产生不同的结果?以下查询是否应该产生相同的结果? (MySQL)
games(id) (464 records)
members(id) (1 record, id=351)
gameslists(id,memberid,gameid) -- (2 records, (1,351,1) and (2,351,2))
这会产生空
SELECT games.*
FROM games
INNER JOIN gameslists ON gameslists.gameid = games.id
WHERE gameslists.memberid <> 351 AND gameslists.id is NULL
这将产生462个记录,这是我的期望。
SELECT games.*
FROM games
LEFT JOIN gameslists ON gameslists.gameid = games.id AND gameslists.memberid <> 351
WHERE gameslists.id is NULL
谢谢Daniel! – Mohamad 2010-09-12 22:00:19
@梅尔:什么是产生错误? – 2010-09-12 22:00:56
不是,一个错误,但也为空:LEFT JOIN gameslists ON gameslists.gameid = games.id WHERE gameslists.id为NULL AND gameslists.memberid <> 352 – Mohamad 2010-09-12 22:02:00