检索表

时间:2015-08-15 18:45:46

标签: mysql ms-access

所以我有两张桌子:

  

健身房(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

然而它不起作用,他们以任何方式实现我想做的事情也是如此?

1 个答案:

答案 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才能与该表建立连接