MySQL-如何在两个MySQL表中找到相似的数据?
我有两张这样的桌子: 表1 表2 结果 我可以合并表1(如11012)中的cat、id列以获得表2中cat列(如11012)中相同的值吗? 我尝试过这样的查询: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
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