mysql - 遇到需要满足多个条件的 MySQL Join 问题

我有两张 table roomsrooms 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

https://stackoverflow.com/questions/8018550/

相关文章:

mysql - MySQL 是否索引 NULL 值?

mysql - 如何解决 "Error: MySQL shutdown unexpectedly"?

mysql - 如何在 Sequel Pro 中执行查询?

java - 如何解决无法加载身份验证插件 'caching_sha2_password' 问题

python - MySQL:从查询中获取列名或别名

sql - 你能在 SQL 中定义 "literal"表吗?

sql - 单数还是复数数据库表名?

mysql - 错误 : select command denied to user '

mysql - 允许所有远程连接,MySQL

mysql - UNION 和 ORDER BY 的使用不正确?