我有这两张桌子。
表 una :
| id | word | desc |
表匹配:
| id | word | review |
表 una 有几千行,表匹配最终将与 una 具有相同的大小,但目前只有几行。
我想要的是SELECT
来自 una 的所有行,但不要显示匹配中也包含单词的行AND设置为review = 0
。
我需要使用IF EXISTS (....)
吗?
答案 0 :(得分:2)
select u.*
from una u
left join match m on u.word=m.word
having m.word is null
答案 1 :(得分:2)
您将希望SQL沿着这一行:
SELECT * FROM una WHERE word IN (
SELECT word FROM una
MINUS
SELECT word FROM match WHERE review = 0
)
更新:改进:
SELECT *
FROM una
WHERE word NOT IN (
SELECT word
FROM match
WHERE review = 0
)
答案 2 :(得分:1)
SELECT *
FROM una AS u
WHERE u.word NOT IN (SELECT word FROM match)
AND u.review = 0
编辑 - 抱歉这是针对TSQL的,我不知道它是否与Mysql相同。