SELECT ids_horarios_adicionales from adicionales WHERE id_adicionales=1
因此,此查询返回结果1,3
,行ids_horarios_adicionales
将包含以逗号分隔的ID。IN中的SQL查询结果
什么IM打算做的是这样的:
SELECT *
FROM adicionales a
LEFT JOIN horarios b ON b.id_horarios IN (1,3)
WHERE id_adicionales=1
但是当我使用这个查询,结果是不一样的:
SELECT *
FROM adicionales a
LEFT JOIN horarios b ON b.id_horarios IN (SELECT ids_horarios_adicionales from adicionales WHERE id_adicionales=1)
WHERE id_adicionales=1
)任何想法如何使里面的SELECT查询(打印为1,3
这是架构和SQL查询的结果我想,sugested其他任何方法都是有益的:http://sqlfiddle.com/#!9/714a50/2
最好的办法是一定要规范你databale和存储'1'和'3'在stomic值使用FIND_IN_SET单独的表格行,但不是字符串“1,3”(三个字符)。如果同比不喜欢这个想法,那么你必须解析这个字符串并将其分解为单独的值。在SO上查找'mysql split逗号分隔列表',这个主题有很多答案。 – krokodilko
@krokodilko这是我想要的结果,你建议什么方法? http://sqlfiddle.com/#!9/714a50/2 – Ered
这似乎是一个很奇怪的方式来构造查询。你的问题应该包括示例数据和期望的结果(最好有SQL小提琴,但基本问题也应该有)。 –