2016-11-27 55 views
0

我有一個數據庫中的3個表。正確的mysql語句鏈接countys到唯一的位置與文檔

1位置(LOCATION_ID,county_id,名)

2縣(county_id,名)

3號文件(DOCUMENT_ID,DOCUMENT_TYPE,LOCATION_ID,標題,正文)

SQL語句我有:

SELECT d.document_id, d.title, l.name AS location_name 

FROM document d 
    INNER JOIN location l ON d.location_id=l.location_id 
WHERE d.document_type = 1 AND d.title LIKE '%foo%' 

我需要的文檔title and id,位置name and location_id,和縣name and county_id要退回。

問題是我如何才能選擇縣名和縣ID爲只有我在這個結果中的位置,而不是位置表中的所有位置。

如果我做了另一個INNER JOIN county c ON l.county_id=c.county_id,那麼查詢花費很長時間,爲所有位置添加縣(表中有13.000個位置)。

+0

另一個連接是你的問題的答案。如果運行查詢需要很長時間,則添加適當的索引。 – Shadow

+0

我想更多的東西像一個子'SELECT DISTINCT(d.location_id)'並加入縣只爲這些地點......但我不能得到一個握在這.... – Szekelygobe

+0

你的意思是'l.name喜歡'%FOO%''?我在文檔表中看不到「名稱」列。 – CGritton

回答

0

SELECT * FROM國家裏COUNTRY_ID在( SELECT COUNTRY_ID

FROM文檔d INNER JOIN位置升ON d.location_id = l.location_id WHERE d.document_type = 1 AND d.title LIKE「%FOO %')