两个MySQL表之间的部分匹配
表1“标题” 身份证名称 1汤米·希尔菲格男士1790790黑色手表 表2“产品” 供应商名称 1790790 我需要找到表1中的行,其中表2供应商名称位于表1标题的某个位置,在本例中,“1790790”应该是预期结果 此查询已加载多年,但从未完成:两个MySQL表之间的部分匹配,mysql,Mysql,表1“标题” 身份证名称 1汤米·希尔菲格男士1790790黑色手表 表2“产品” 供应商名称 1790790 我需要找到表1中的行,其中表2供应商名称位于表1标题的某个位置,在本例中,“1790790”应该是预期结果 此查询已加载多年,但从未完成: SELECT * FROM `titles` t1 INNER JOIN product t2 ON t2.supplier_name LIKE CONCAT('%', t1.title, '%'); 这个查询哪里出错了?我认为左连接是您想要的
SELECT * FROM `titles` t1
INNER JOIN product t2 ON t2.supplier_name LIKE CONCAT('%', t1.title, '%');
这个查询哪里出错了?我认为
左连接是您想要的
SELECT * FROM `titles` t1
LEFT JOIN product t2 ON t2.supplier_name LIKE CONCAT('%', t1.title, '%');
@lelio faieta为什么要编辑示例数据,现在无法理解?您是否尝试过省略内部
,而只使用JOIN
。。。如果它有助于找出内部连接
和连接
之间的区别,我认为左连接
是您想要的,它只会以这种方式找到与“hilfiger”匹配的单词,而不是我正在查找的产品代码。上面的示例数据不会出现,尽管它应该出现。此示例返回0个结果:从产品t2中选择*供应商名称(从titles
t1中选择CONCAT(“%”,t1.title,“%”),您需要将LIKE和IN组合在一起才能使最后一个有效谢谢。我现在有点受不了了。你能帮我把它们结合起来吗?我认为你不能把它们结合起来