所以我有两张桌子:
健身房(ID *,姓名,类型)
gym_unlocked(ID *,gymID *,userID *)
我正在尝试执行一个SQL查询,如果在gym_unlocked表中不存在行,那么它只会从健身房表中检索行。
例如,如果我在健身房桌子上有一排名为" FirstGym"和#34;力量"如果该健身房的ID与gym_unlocked表中的任何行匹配,并且userID为2,那么它将从健身房表中检索该行。
到目前为止,我有:
SELECT ID,name,type
FROM gym
WHERE gym.id NOT IN gym_unlocked.gymID AND gym_unlocked.userID = 2
然而它不起作用,他们以任何方式实现我想做的事情也是如此?
答案 0 :(得分:2)
我对mysql语法并不熟悉,但它应该是这样的:
SELECT ID,name,type
FROM gym
WHERE gym.id NOT IN
(SELECT gym_unlocked.gymID
FROM gym_unlocked
WHERE gym_unlocked.userID = 2)
我想你收到一个关于gym_unlocked表的错误。您需要为此表使用LEFT JOIN或SUBSELECT才能与该表建立连接