選擇數據我有兩個表MySQL查詢,並從兩個表
taxonomy_index
-nid
-tid
和
url_alias
-source
-alias
我需要找到url_alias.alias
記錄具有源'taxonomy/term/' + taxonomy_index.tid
我只有taxonomy_index.nid
選擇數據我有兩個表MySQL查詢,並從兩個表
taxonomy_index
-nid
-tid
和
url_alias
-source
-alias
我需要找到url_alias.alias
記錄具有源'taxonomy/term/' + taxonomy_index.tid
我只有taxonomy_index.nid
SELECT url_alias.alias
FROM url_alias, taxonomy_index
WHERE url_alias.source = CONCATENATE('taxonomy/term/', taxonomy_index.tid)
AND taxonomy_index.nid = {given_nid}
無論是使用子查詢或聯接。使用子查詢:
SELECT alias
FROM url_alias
WHERE source =
(SELECT CONCAT('taxonomy/term/',tid)
FROM taxonomy_index
WHERE nid = ?
)
這個查詢會爲你做的,雖然有可能做到這一點更有效的方式;)
SELECT
T.nid
,U.*
FROM
url_alias AS U
INNER JOIN (
SELECT
nid
,CONCAT('taxonomy/term/', tid) AS `alias`
FROM
taxonomy_index) AS T
ON
U.alias = T.alias
要知道,子查詢單是很慢,特別是當你使用CONCAT時。只是一個頭 – DarkMantis