我有一个包含以下列的表: id,session_id,date_start,date_end,speaker_1,speaker_2,speaker_3,speaker_4,speaker_5
我想在此表中查询所有会话,其中speaker_id包含在5个扬声器列中的任何一个中。我还需要将表连接到session_id,其中包含有关会话的其他信息。
我知道这个表结构并不是我想要做的理想格式,但是我不能在这一点上改变表结构。
我很好奇如何在最后查询扬声器值的条件部分。是否可以对列进行分组?
这里的基本SQL经验。谢谢!
答案 0 :(得分:1)
您可以使用in
:
select s.*
from speakers s
where 1 in (speaker_1, speaker_2, speaker_3, speaker_4, speaker_5);
(假设您正在寻找1
作为演讲者ID。)
您可以在in
列表中使用变量。
答案 1 :(得分:0)
WHERE :id IN (speaker_1, speaker_2, speaker_3, speaker_4, speaker_5)