我有一個小型table1,其路徑類似於foo/bar
。加入table2其中table1結果不匹配
我有一個很大的table2與像https://www.google.com/foo/bar/
完整的網址。
我想選擇table1路徑,它不存在於table2的完整URL中。
我試圖用一個REGEXP加入,但查詢是很慢的,我可能選擇了錯誤的連接:
SELECT t1.path
FROM table1 AS t1
RIGHT JOIN `table2` AS t2
ON (REPLACE(t1.path, '/', '\\/') REGEXP ".+" + t2.url + ".*")
WHERE t1.path != ""
ORDER BY t1.id DESC
LIMIT 10
與不能在子查詢可能有幫助,但我不知道如何使用第一個查詢的結果路徑:
SELECT path
FROM `table1`
WHERE path != ""
NOT IN (
SELECT url FROM `table2` WHERE url LIKE "%" + [path of query 1] + "%"
)
ORDER BY id DESC
LIMIT 10
如何解決這個問題?
你不能。您的數據不適合快速加入。 –
那麼單獨的查詢或路徑的每個結果? – Martin
。 。 MySQL不提供對連接條件部分字符串匹配的有效支持。 –