В SQL Query я не смог получить действительно данные - PullRequest
0 голосов
/ 29 марта 2020

enter image description here

Привет, у меня есть столик. Я хочу знать, какой hotel_id имеет 2 объекта одновременно.

SELECT * 
from hotel_facilities_has 
WHERE isHas='1' AND (facilities_id=1 AND facilities_id=2) 
GROUP BY hotel_id

с этим без записи.

1 Ответ

0 голосов
/ 29 марта 2020

Ваш запрос не работает, потому что вы ищете строки, которые удовлетворяют обоим условиям одновременно, что не может произойти. Вам нужно просмотреть строки одной и той же группы.

Вместо этого вы можете фильтровать строки, удовлетворяющие любому условию, а затем убедиться, что у вас есть две строки в группе:

select hotel_id
from mytable
where isHas = 1 and facilities_id in (1, 2)  -- one or the other
group by hotel_id 
having count(*) = 2                          -- two rows in the group

Если (hotel_id, facilities_id ) кортежи не уникальны, вам нужно having count(distinct facilities_id) = 2.

...