我有两张 table rooms
和 rooms facility
,我必须选择配备所需设施的房间。
如果我选择一个有一个设施的房间(id=4 - id_fu - 的设施)。使用以下查询一切正常:
SELECT u.* FROM rooms u
JOIN facilities_r fu
ON fu.id_uc = u.id_uc
AND fu.id_fu = '4'
WHERE 1
AND vizibility='1'
GROUP BY id_uc
ORDER BY u_premium desc, id_uc DESC
但如果我想选择设施更多的房间,假设设施 id=4,id=3 ..使用以下查询不起作用:
SELECT u.* FROM room u
JOIN facilities_r fu
ON fu.id_uc=u.id_uc
AND fu.id_fu = '4'
AND fu.id_fu = '3'
WHERE 1
AND vizibility = '1'
GROUP BY id_uc
ORDER BY u_premium DESC, id_uc DESC
我不明白为什么它不起作用,但我无法弄清楚如何放置条件。
最佳答案
您可以使用括号对条件进行分组。当您检查一个字段是否等于另一个字段时,您需要使用 OR
。例如 WHERE a='1' AND (b='123' OR b='234')
。
SELECT u.*
FROM rooms AS u
JOIN facilities_r AS fu
ON fu.id_uc = u.id_uc AND (fu.id_fu='4' OR fu.id_fu='3')
WHERE vizibility='1'
GROUP BY id_uc
ORDER BY u_premium desc, id_uc desc
关于mysql - 遇到需要满足多个条件的 MySQL Join 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8018550/