我有问题为我的情况创建查询:
我是表用户:
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是错的......我想。你能帮帮我吗?
由于
答案 0 :(得分:1)
试试这个
SELECT NAME FROM user WHERE ID in (SELECT DISTINCT ID FROM store WHERE ACTIVE=true);
此外,正如@Bohemian所提到的,表中的ID
字段通常指的是该表中该记录的唯一标识符。因此User.ID
与Store.ID
答案 1 :(得分:1)
使用联接:
SELECT DISTINCT user.NAME
FROM store
JOIN user ON store.ID = user.ID
WHERE ACTIVE = true
我想补充一点,你的问题表明用户ID与商店ID的含义相同,这似乎不太可能。您更有可能不应该比较这些ID列。
更有可能的是,你根本不应该尝试加入这两个表。