我有2张桌子
表1 - > msqt_subjects
id category - 1 maths - 2 physics - 3 history表2 - > msqt_class
id subjects - 1 ,1,2,3,
我的查询是
从
id
中选择category
,msqt_subjects
id
IN(从subjects
中选择TRIM(BOTH','FROMmsqt_class
)id
= 1)
它只返回一行,实际上它必须返回3行。
当我单独运行子查询时,结果为1,2,3
。
我喜欢使用单个查询而不是单独的查询。
查询是否正确?
答案 0 :(得分:0)
试试这个:
SELECT ms.id, ms.category
FROM msqt_subjects ms
INNER JOIN msqt_class mc ON mc.subjects LIKE CONCAT('%,', ms.id, ',%')
WHERE mc.id = 1;
或强>
SELECT ms.id, ms.category
FROM msqt_subjects ms
INNER JOIN msqt_class mc ON FIND_IN_SET(ms.id, TRIM(BOTH ',' FROM mc.subjects))
WHERE mc.id = 1;