如何在子查询中使用in子句 [英] How to use in clause in subquery
本文介绍了如何在子查询中使用in子句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个表如下,
表 1:
ID NAME
------ --------
IM-1 Pencil
IM-2 Pen
IM-3 NoteBook
IM-4 Eraser
表 2:
ID ITEM_ID
------ --------------
MT-1 IM-1
MT-2 IM-1,IM-2,IM-3
MT-3 IM-1,IM-2,IM-4
要求的结果是:
ID ITEMNAME
------ --------
MT-1 Pencil
MT-2 Pencil,Pen,NoteBook
MT-3 Pencil,Pen,Eraser
但是通过使用查询
SELECT T2.ID,
(SELECT T1.NAME
FROM TABLE1 AS T1
WHERE T1.ID IN (T2.ITEM_ID)) AS ITEMNAME
FROM TABLE2 AS T2
我得到了结果:
ID ITEMNAME
------ --------
MT-1 Pencil
MT-2 (NULL)
MT-3 (NULL)
有人可以帮我吗?
推荐答案
试试这个:
SELECT b.ID,
GROUP_CONCAT(a.Name) as ItemName
FROM Table2 b INNER JOIN Table1 a
ON FIND_IN_SET(a.name, b.Item_ID)
GROUP BY b.ID
这篇关于如何在子查询中使用in子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文