SELECT x FROM表WHERE

时间:2013-12-20 01:23:15

标签: mysql sql

我有问题为我的情况创建查询:

我是表用户:

ID   NAME   CREDITS

1   "AAA"   10000

2   "BBB"   20000

3   "CCC"   30000

和表商店:

ID    ITEM_ID   ACTIVE

2    "table"    true

2    "chair"    false

1    "apple"    true

我想选择ACTIVE为ID等于true的所有NAME,所以对于我的情况输出应该是:

"AAA"
"BBB"

我做了:

SELECT NAME FROM user WHERE (SELECT DISTINCT ID FROM store WHERE ACTIVE=true);

但是第一个WHERE是错的......我想。你能帮帮我吗?

由于

2 个答案:

答案 0 :(得分:1)

试试这个

SELECT NAME FROM user WHERE ID in (SELECT DISTINCT ID FROM store WHERE ACTIVE=true);

此外,正如@Bohemian所提到的,表中的ID字段通常指的是该表中该记录的唯一标识符。因此User.IDStore.ID

无关

答案 1 :(得分:1)

使用联接:

SELECT DISTINCT user.NAME
FROM store
JOIN user ON store.ID = user.ID
WHERE ACTIVE = true

我想补充一点,你的问题表明用户ID与商店ID的含义相同,这似乎不太可能。您更有可能不应该比较这些ID列。

更有可能的是,你根本不应该尝试加入这两个表。