Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-如何在两个MySQL表中找到相似的数据?_Mysql_Sql_Mariadb - Fatal编程技术网

MySQL-如何在两个MySQL表中找到相似的数据?

MySQL-如何在两个MySQL表中找到相似的数据?,mysql,sql,mariadb,Mysql,Sql,Mariadb,我有两张这样的桌子: 表1 表2 结果 我可以合并表1(如11012)中的cat、id列以获得表2中cat列(如11012)中相同的值吗? 我尝试过这样的查询: SELECT a.cat,a.id FROM table1 a JOIN table2 b ON a.cat LIKE CONCAT('%', b.cat, '%') 但我并没有得到我期望的结果。若我正确理解了这个问题,你们应该这样做 SELECT a.cat,a.id FROM table1 a JOIN table2 b ON

我有两张这样的桌子:

表1 表2 结果 我可以合并表1(如11012)中的cat、id列以获得表2中cat列(如11012)中相同的值吗? 我尝试过这样的查询:

SELECT a.cat,a.id FROM table1 a JOIN table2 b ON a.cat LIKE CONCAT('%', b.cat, '%') 

但我并没有得到我期望的结果。

若我正确理解了这个问题,你们应该这样做

SELECT a.cat,a.id FROM table1 a JOIN table2 b ON LEFT(a.cat,3) = LEFT(b.cat, 3)

若我理解正确,你们应该这样做

SELECT a.cat,a.id FROM table1 a JOIN table2 b ON LEFT(a.cat,3) = LEFT(b.cat, 3)
逻辑:从
cat
中删除尾随的星号,连接
id
,然后进行比较

逻辑:从
cat
中删除尾随的星号,连接
id
,然后进行比较


显示所需输出/为什么首先在cat表中有**?似乎整个表结构都是完整的wrong@YourCommonSense我只从我的客户公司得到。也许对他们来说这是秘密。如果他们提供的数据是这样的,我能说他们的表结构完全错误吗?显示所需的输出/为什么首先在cat表中有**?似乎整个表结构都是完整的wrong@YourCommonSense我只从我的客户公司得到。也许对他们来说这是秘密。如果他们提供的数据是这样,我能说他们的表结构完全错误吗?我已经修复了我的表。我想得到结果表中的结果。有没有办法连接表1中的cat,id列(用id列中的值替换“**”)吗?我已经修复了我的表。我想得到结果表中的结果。有没有办法连接表1中的cat,id列(用id列中的值替换'**')?我已经尝试过了,但是如何验证该值?我只希望11012出现。您提供的查询11018和11013也会出现。如表2所示,没有任何值​​第11018号决议和11013@Mr.Coolhead我不相信你。提琴又加了一句——看。哦,对不起,我的错。我忘了修复我的table2数据。谢谢你的帮助!你救了我一天!!!!我已经试过了,但是如何验证值呢?我只希望11012出现。您提供的查询11018和11013也会出现。如表2所示,没有任何值​​第11018号决议和11013@Mr.Coolhead我不相信你。提琴又加了一句——看。哦,对不起,我的错。我忘了修复我的table2数据。谢谢你的帮助!你救了我一天!!!!
SELECT a.cat,a.id FROM table1 a JOIN table2 b ON a.cat LIKE CONCAT('%', b.cat, '%') 
SELECT a.cat,a.id FROM table1 a JOIN table2 b ON LEFT(a.cat,3) = LEFT(b.cat, 3)
SELECT *
FROM table1 t1
JOIN table2 t2 ON CONCAT(TRIM(TRAILING '*' FROM t1.cat), id) = t2.cat