我正在努力修复此查询,我认为我走在正确的轨道上,但我仍然不确定我的查询有什么问题,因为它没有返回任何内容。
这是设置。
表 A 具有以下值:
字段:项目编号
- S3
- S2
- S1
- 答1
表B
字段:项选项
- RK-S3
- RE-S3
- LO-S1
- SE-S1
- AE-A1
- JA-S2
目前的问题是两个表除了itemnumber是itemoption的最后一部分之外没有任何关系
我的目标是组合这些表的 2 个字段以生成类似
- S3 |RK-S3
- S3 |RE-S3
- S1 |LO-S1
- S1 |SE-S1
- A1 |AE-A1
- S2 |JA-S2
这是我的SQL代码,我正在尝试使其工作
SELECT itemoptions,itemnumber
FROM TableB
JOIN (SELECT Distinct(itemnumber)
FROM
TableA
WHERE
List_ID = 3
)
ON itemoptions LIKE concat('%', itemnumber)
编辑:感谢您提出concat,我修复了查询。我尝试在原始查询上执行此操作,但没有得到任何结果。感谢您的快速回复,我正在尝试所有建议的选项
字符串连接函数CONCAT()
。+
仅用于添加。
SELECT itemnumber, itemoptions
FROM TableB
JOIN TableA ON itemoptions LIKE CONCAT('%', itemnumber)
WHERE List_ID = 3
您不需要子查询,您可以将WHERE
条件放在主查询中。
演示
MySQL使用concat()
而不是+
进行字符串连接(后者代表数字加法(。
考虑:
select ta.itemnumber, tb.itemoptions
from tablea ta
inner join tableb tb on tb.itemoptions like concat('%-', ta.itemnumber)