mysql - 如何将 IN 条件与 LEFT OUTER JOIN 和 ON 一起使用

标签 mysql

我想使用 IN 条件,它适用于该值,不适用于另一个表的变量,这是我的示例

SELECT  A.*,B.* 
FROM table1 AS A 
LEFT JOIN erp_wh_salhd AS B ON B.InvNo = '15'  AND A.InvNo IN (B.filter1) 
//Not working  Comming only one row for B table

如果我直接传递值意味着它有效,即

SELECT  A.*,B.* 
FROM table1 AS A 
LEFT JOIN erp_wh_salhd AS B ON B.InvNo = '15'  AND A.InvNo IN (2,3)  
// Working. table B have two values 

最佳答案

如果 erp_wh_salhd 中的 filter1 字段是逗号分隔的值列表,则需要使用 FIND_IN_SET而不是 IN:

SELECT  A.*,B.* 
FROM table1 AS A 
LEFT JOIN erp_wh_salhd AS B ON B.InvNo = '15'  AND FIND_IN_SET(A.InvNo, B.filter1) 

关于mysql - 如何将 IN 条件与 LEFT OUTER JOIN 和 ON 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54860664/

相关文章:

php - MYSQL子查询和正则表达式

mysql - 使用纯MYSQL插入mdY格式的日期

mysql - 无法在 cygwin 上安装 mysql,找不到 curses/termcap 库

每个办公室邮政编码的 MySQL 查询频率

php - 为什么这个mysqli准备好的语句不起作用?

php - 将查询结果保存到 CSV 并在服务器上创建文件

PHP - 文件获取内容和正确的编码

php - 有效地从数据库下拉列表中获取值

mysql - 如何仅返回日期字段中具有最大年份的 SQL 行?

mysql - 列出具有特定列名的列值的所有表名