0
我創建了一個mySQL查詢來搜索單詞並通過相關性排序結果(Sortkey)。例如,如果我搜索「測試字」,我的查詢看起來像這樣(和它的作品就像一個魅力):MySQL - 與RLIKE和GROUP BY聯合選擇 - 無法插入INNER JOIN
SELECT *
FROM ( SELECT *, 1 as SortKey
FROM equipments
WHERE (
DESCRIPTION RLIKE '[[:<:]]test word[[:>:]]'
OR EQUIPMENT_ID RLIKE '[[:<:]]test word[[:>:]]'
OR CATEGORY RLIKE '[[:<:]]test word[[:>:]]'
)
UNION SELECT *, 2 as SortKey
FROM equipments
WHERE (
(DESCRIPTION RLIKE '[[:<:]]test[[:>:]]' OR
EQUIPMENT_ID RLIKE '[[:<:]]test[[:>:]]' OR
CATEGORY RLIKE '[[:<:]]test[[:>:]]' OR
DESCRIPTION RLIKE '[[:<:]]tests[[:>:]]' OR
EQUIPMENT_ID RLIKE '[[:<:]]tests[[:>:]]' OR
CATEGORY RLIKE '[[:<:]]tests[[:>:]]')
AND
(DESCRIPTION RLIKE '[[:<:]]word[[:>:]]' OR
EQUIPMENT_ID RLIKE '[[:<:]]word[[:>:]]' OR
CATEGORY RLIKE '[[:<:]]word[[:>:]]' OR
DESCRIPTION RLIKE '[[:<:]]words[[:>:]]' OR
EQUIPMENT_ID RLIKE '[[:<:]]words[[:>:]]' OR
CATEGORY RLIKE '[[:<:]]words[[:>:]]')
)
UNION SELECT *, 3 as SortKey
FROM equipments
WHERE (
(DESCRIPTION RLIKE '[[:<:]]test[[:>:]]' OR
EQUIPMENT_ID RLIKE '[[:<:]]test[[:>:]]' OR
CATEGORY RLIKE '[[:<:]]test[[:>:]]' OR
DESCRIPTION RLIKE '[[:<:]]tests[[:>:]]' OR
EQUIPMENT_ID RLIKE '[[:<:]]tests[[:>:]]' OR
CATEGORY RLIKE '[[:<:]]tests[[:>:]]')
)
OR (
(DESCRIPTION RLIKE '[[:<:]]word[[:>:]]' OR
EQUIPMENT_ID RLIKE '[[:<:]]word[[:>:]]' OR
CATEGORY RLIKE '[[:<:]]word[[:>:]]' OR
DESCRIPTION RLIKE '[[:<:]]words[[:>:]]' OR
EQUIPMENT_ID RLIKE '[[:<:]]words[[:>:]]' OR
CATEGORY RLIKE '[[:<:]]words[[:>:]]')
)
) T1 GROUP BY EQUIPMENT_ID ORDER BY `SortKey` ASC
所以,正如我所說的,它的工作原理,但我想插入INNER中加入我的查詢,我試圖把它放在任何地方,沒有任何工作。通常情況下,以顯示所有結果,而不尋找關鍵字,我用這個查詢(再次,它工作正常):
SELECT
`equipments`.`DESCRIPTION`,
`equipments`.`EQUIPMENT_ID`,
`equipments`.`CATEGORY`,
`live_data`.`SERVICE`,
`live_data`.`HOURS`
FROM equipments
INNER JOIN customers ON `customers`.`EQUIPMENT_ID` = `equipments`.`EQUIPMENT_ID`
LEFT JOIN live_data ON `live_data`.`EQUIPMENT_ID` = `equipments`.`EQUIPMENT_ID`
WHERE `customers`.`customer_id` = 1
我需要插入INNER JOIN也將WHERE語句搜索到客戶的設備只。請幫幫我!
謝謝!這正是我需要的! – pmrotule
經過反思,我還需要從「live_data」表中獲取「SERVICE」和「HOURS」值。我在INNER JOIN行和WHERE行之間添加了「LEFT JOIN live_data ON live_data.EQUIPMENT_ID = innerresult.EQUIPMENT_ID」行,但我不知道如何選擇「service」和「hours」......我嘗試了幾件事情,但這並不成功...... – pmrotule
選擇innerresult。*,live_Data.service,live_data.hours從... –