我有兩個表格,我將其稱爲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