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小提琴,但基本問題也應該有)。 –