2013-04-18 66 views
0

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

+2

你能告訴我們你正在使用的RDBS - MySQL和MS SQL,甲骨文..? – KenD

+0

對不起,MySQL。 – user2294763

回答

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) 
+0

非常感謝你! – user2294763

+0

嘿皮特,最後一行中「從table1 ....選擇1」的目的是什麼? –

+0

Hi @Evan,提問者希望排除其中table1.auth不等於1的匹配行。子查詢從auth字段不是1的table1獲取所有匹配的行,並且「NOT EXISTS」子句排除它們。 'select 1'部分只是我使用的一個約定;你可以用幾乎任何東西代替它:'select *'或'select'x''都可以。 – Peter

0
SELECT * 
    FROM table1 t1 
    INNER JOIN table2 t2 
    ON t1.id != t2.id