我有两个这样的表:
Table Items
+--------------------+
| id | item |
+----+---------------+
| 1 | Table |
+----+---------------+
| 2 | couch |
+----+---------------+
| 3 | Bed |
+----+---------------+
| 4 | Chair |
+----+---------------+
| 5 | Desk |
+----+---------------+
Table Acme
+--------------------+--------+
| id | items | Client |
+----+---------------+--------+
| 1 | 1,3,5 | S45-56 |
+----+---------------+--------+
我需要使用Acme表中的CSV在Items表中选择项目
我尝试使用以下查询,但仅获取第一个树值
SELECT * FROM Items WHERE id IN (SELECT items FROM Acme WHERE client ='S45-56')
任何的想法?
您可以find_in_set()
用来检查值是否在逗号分隔的列表中。
SELECT i.*
FROM items i
INNER JOIN acme a
ON find_in_set(i.id, a.items)
WHERE a.client = 'S45-56';
但是最好是修复您的架构,不要使用逗号分隔的列表,而要使用表中的多行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句