0

我是 sql 的新手,正在尝试学习如何做事请帮我解决这个问题!

我有两张桌子

Table1 有一个句子列表,它有 1 列和 100 行

Table2 有一个单词列表,它有 1 列和 5 行

我想选择 Table1 中找到单词“john”的所有行,但如果 Table2 中的单词也存在于该行中,则不会。这是例外列表

我怎样才能用 SQL 做到这一点?

我一直在尝试一些括号组合,但我不知道我在做什么:

SELECT "desc" FROM table 
WHERE "desc"LIKE "%matchedword1%" 
OR "desc" LIKE "%someotherword%" 
AND (SELECT string FROM exceptions) NOT IN "desc";

帮助!谢谢!

4

3 回答 3

3
SELECT "desc" FROM table 
WHERE ("desc" LIKE "%matchedword1%" OR "desc" LIKE "%someotherword%") 
AND "desc" NOT IN (SELECT string FROM exceptions);
于 2012-06-23T01:11:24.573 回答
0

实际上,您没有将条件语句括在括号中,因此请以这种方式编写此查询:

SELECT "desc" FROM table WHERE("desc" LIKE "%matchedword" OR "desc" LIKE "%otherword") 
AND "desc" NOT IN (SELECT string from exception);
于 2012-06-23T01:52:24.973 回答
0

你可能忘记了括号:

SELECT "desc" FROM table 
WHERE ("desc"LIKE "%matchedword1%" 
OR "desc" LIKE "%someotherword%")
AND "desc" NOT IN (SELECT string FROM exceptions);

“AND”总是比“OR”具有更高的优先级。

于 2012-06-23T01:15:24.463 回答