[英]how to compare two table in same database in mysql?
我是MYSQL新手。 我在同一數據庫中有兩個不同的表。 每個表只有3列。 我想與第一張桌子的第二張桌子進行比較。
表格1:
path -> C:/sume/sorve/data001/data001.jpg
frn -> 256423
byte -> 153
table 2:
path -> C:/ones/elsa/data001/data001.jpg
frn -> 256423
byte -> 153
我需要匹配(data001 / data001.jpg,256423,153),該怎么做? 因為之前某些data001子目錄始終位於其他目錄中。
什么記錄與第二張表不匹配,我需要該記錄。
試試這個
select t1.* from table1 t1
left join table2 t2 on
substring_index(t2.path, '/', -1) = substring_index(t1.path, '/', -1)
and t2.frn = t1.frn
and t2.byte = t1.byte
where t2.path is null or t2.frn is null or t2.byte is null
編輯路徑。 現在檢查它是否可以正常工作
如果路徑是靜態的(即,每個表中的所有條目的路徑都相同),則可以將該部分替換為空字符串,作為常規LEFT JOIN
的一部分;
SELECT t1.*
FROM Table1 t1
LEFT JOIN Table2 t2
ON REPLACE(t1.`path`, 'C:/sume/sorve/', '') =
REPLACE(t2.`path`, 'C:/ones/elsa/', '')
AND t1.`frn` = t2.`frn`
AND t1.`byte` = t2.`byte`
WHERE t2.`path` IS NULL;
請注意,此搜索不能很好地使用index ,因此,與呈現網頁無關,您無需執行任何操作。 如果需要經常執行此操作,則可能需要使數據庫中的路徑相對,並且僅在需要訪問文件時才添加絕對路徑部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.