我有如下表SQL與多個表的搜索查詢加入
文件
- 文檔ID(PK)
- 網址
WDATA
- 的wordID(PK)
- 字
wtitle
- 的wordID
- 的docID
(的wordID &文檔ID組合是唯一的)
wurl
- 的wordID
- 文檔ID
(wordID的&文檔ID組合是唯一的)
搜索我打破它到任何文字短語,並得到其wordid
。表格wtitle
,wurl
將被用於排名評分。我打算添加更多的表格,如inlink,inh1標籤等。但是,我有問題框架我的sql查詢搜索詞。
我的SQL查詢像
SELECT d.docid,furl,IF(t.wordid IS NULL,0,1) AS intitle,IF(u.wordid IS NULL,0,1) AS inurl FROM document d
LEFT JOIN wtitle t ON t.docid=d.docid
LEFT JOIN wdata w ON w.wordid=t.wordid
LEFT JOIN wurl u ON u.wordid=w.wordid AND u.docid=d.docid
WHERE w.wordid IN (wordid1,wordid2,wordid3)
我有以下懷疑
- 如何檢查每個表
wtitle
和wurl
兩個甚至更多作爲目前它在因爲左wtitle搜索第一個JOIN和其他連接被忽略? 如何正確構建此SQL查詢?
的wordID 3是URL,但不是在DOCID的標題2
的wordID 3是不是在URL,但在DOCID 3的標題
我要回然而,doc 2和3都是因爲它首先通過wtitle加入它忽略了(使用第一個查詢數據)其他連接
什麼可以幫助您創建一些簡短的測試數據併爲自己進行驗證。看看你是否可以得到值來匹配。 –
請注意,'LEFT JOIN w ... WHERE w = ...'與'INNER JOIN w'相同' – Strawberry
如需進一步幫助,請參閱:[爲什麼我應該爲我看來的MCVE一個非常簡單的SQL查詢?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-bea-a-非常簡單的sql查詢) – Strawberry