我想查询下表,以返回SessionId和Roomx的交集为0的列的标题。房间的类型是TINYINT - 在mysql中代表BOOLEAN
下表:
SessionId Room1 Room2 Room3
1 0 1 0
2 1 0 1
对于上表,例如SessionId 1,查询应该返回Room1和Room3 将非常感谢帮助。 感谢。
答案 0 :(得分:1)
在我看来,它就像一张需要重新设计的桌子。根据列名称判断,您应该处理的“对象”(行)是“事件”:事件发生在房间,在部分期间。使用该设置,您的表格将如下所示:
session_id room_id
1 2
2 1
2 3
现在仍然没有一个查询会给你在给定会话期间不的房间,但很容易找到所在的房间:
SELECT room_id FROM events WHERE session_id = <whatever>
很容易将其与所有可能的房间列表结合起来,以获取您需要的信息。
希望这有帮助!
PS:如果你有一个rooms
表(我不会为此添加一个,但如果你碰巧有一个),它会变得更容易:< / p>
SELECT id FROM rooms WHERE NOT EXISTS (SELECT * FROM events WHERE room_id = id AND session_id = <whatever>)
答案 1 :(得分:-2)
SELECT column_name FROM information_schema.columns WHERE table_name = 'tabel Name'