Есть ли лучший способ заставить этот запрос работать? Я ищу более эффективное решение, если есть один доступный.Может ли этот запрос MySQL (с подзапросами) быть оптимизирован?
SELECT `unitid`, `name` FROM apartmentunits WHERE aptid IN (
SELECT `aptid` FROM rentconditionsmap WHERE rentcondid = 4 AND condnum = 1
) AND aptid IN (
SELECT `aptid` FROM rentconditionsmap WHERE rentcondid = 2 AND condnum = 1
) ORDER BY name ASC
@tenner: Ваш запрос работает. Теперь, хотел бы я просто начать с большего количества объединений внутри этого запроса, если мне нужно было добавить дополнительные наборы rentcondid и condnum? SELECT unitid, имя FROM квартиры, где есть aptid IN (SELECT r1.aptid FROM rentconditionsmap r1 JOIN rentconditionsmap r2 ON r1.aptid = r2.aptid WHERE r1.rentcondid = 4 AND r1.condnum = 1 AND r2.rentcondid = 2 AND r2 .condnum = 1) –
Да, если у вас есть три условия, вам понадобится три таблицы в вашем объединении. – Tenner