에서 서로에 대한 여러 행을 확인 나는 다양한 정보가 그들에 관한와 건물의 테이블이 등 address
, building_id
, 같은MySQL의
그 건물들. 모든 보고서는 여기에 버려지기 때문에이 표는 방대한 양입니다. 각 보고서의 상태는 0 = 폐쇄 또는 1 = 활성입니다. 참고 : building_id
도 각 레코드에 있으므로이 방법으로 함께 묶을 수 있습니다.
마지막 부분은 ID로 로그인 한 사람으로, 사람이 시작하는 건물을 제어합니다.
내가하고 싶은 일은 공개 보고서가있는 건물 목록을 작성하는 것입니다. 지금은 쿼리를 실행하여 모든 건물을 user_id
으로 가져 오도록 설정되었습니다. 그런 다음 쿼리를 실행하여 열려있는 모든 보고서를 가져옵니다. ... 스키마의 추가 지식없이
SELECT b.*
FROM buildings b
INNER JOIN (SELECT DISTINCT building_id FROM reports WHERE status = 1) r
ON B.building_id = r.building_id
INNER JOIN을 (를) 선택하는 것이 좋지만 하위 쿼리를 유지하는 이유는 무엇입니까? 색인을 그렇게 활용할 수 없습니다. – Wiseguy