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

标签 mysql sql 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

关于mysql - 遇到需要满足多个条件的 MySQL Join 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8018550/

相关文章:

php - 选择所有带标签的线程和其余标签?

SQL 在 SSRS 中运行缓慢,但在 SSMS 中运行速度快

c# - 如何强制 LINQ to SQL 评估数据库中的整个查询?

mysql - 使用 3 个表和联接删除其他记录中包含字符串的记录

PHP 10000并发调用和MYSQL查询等待时间又慢

php - 插入 0000-00-00 00 :00:00 datetime from mysql to postgresql

php - 将 mysql 查询移出循环

php - mysql 未在 php 5.3.1 的 phpinfo() 中启用

Mongodb聚合查找只返回数组的一个字段

php - 如何连接2个表并正确显示它们?