我有两个表格,我将其称为table1和table2。 Table1有2个字段,id和auth,table2也有两个字段,id和关键字。请注意table1和table2的id匹配。 这是我的查询:SQL查询结果全文搜索结果
SELECT id, MATCH(keywords) AGAINST('example') FROM table2 WHERE MATCH(keywords) AGAINST('example')
我怎么排除结果,其中同一ID的身份验证(表1)不是1?
我有两个表格,我将其称为table1和table2。 Table1有2个字段,id和auth,table2也有两个字段,id和关键字。请注意table1和table2的id匹配。 这是我的查询:SQL查询结果全文搜索结果
SELECT id, MATCH(keywords) AGAINST('example') FROM table2 WHERE MATCH(keywords) AGAINST('example')
我怎么排除结果,其中同一ID的身份验证(表1)不是1?
SELECT id, MATCH(keywords) AGAINST('example')
FROM table2 t2
WHERE MATCH(keywords) AGAINST('example')
AND NOT EXISTS (select 1 from table1 t1 where t1.id = t2.id and t1.auth != 1)
非常感谢你! – user2294763
嘿皮特,最后一行中“从table1 ....选择1”的目的是什么? –
Hi @Evan,提问者希望排除其中table1.auth不等于1的匹配行。子查询从auth字段不是1的table1获取所有匹配的行,并且“NOT EXISTS”子句排除它们。 'select 1'部分只是我使用的一个约定;你可以用几乎任何东西代替它:'select *'或'select'x''都可以。 – Peter
SELECT *
FROM table1 t1
INNER JOIN table2 t2
ON t1.id != t2.id
你能告诉我们你正在使用的RDBS - MySQL和MS SQL,甲骨文..? – KenD
对不起,MySQL。 – user2294763