0
내 모든 영역을 선택하고 해당 영역에 대한 거래에 참여하려고합니다.이 쿼리는 내가 기대하는 것과 일치하는 데이터가 있는지 확인한 결과 0 개의 결과를 반환합니다. ... 누가 분명히 틀린 것을 볼 수 있습니까?예상 결과를 반환하지 않는 쿼리
SELECT
deal.*,
area.id AS area_id
FROM area
INNER JOIN account_areas ON (
account_areas.account_id = 1 AND
account_areas.area_id = area.id
)
JOIN deal ON (
deal.area_id = area.id AND
deal.site_id = 1 AND
DAYOFYEAR(deal.created) = DAYOFYEAR(NOW()) AND
deal.end >= NOW()
)
ORDER BY area.name ASC
아이디어는 특정 영역에 대한 모든 거래를하고 싶지만 아무런 거래도없는 경우에도 여전히 결과 쿼리에 해당 영역이 있습니다. 거래 WITH
account
---------------------------------
| id | email |
---------------------------------
| 1 | test_test.com |
---------------------------------
account_areas
------------------------
| account_id | area_id |
------------------------
| 1 | 81 |
| 1 | 42 |
------------------------
deal
--------------------------------------------------------
| id | area_id | Title |
--------------------------------------------------------
| 1 | 81 | Test Title |
--------------------------------------------------------
예상 결과 : 더 계약이없는 경우 모든 거래 열에 대해 널 (null)을 반환하는 거래
area_id
관련 테이블의 발췌 부분을 제공해 줄 수 있습니까? 그렇게하면 사용중인 데이터베이스 (또는 그 일부)를 다시 만들고 쿼리 문제 해결을 시작할 수 있습니다. 또한 두 개의 JOIN 중 하나만 사용하여 결과를 얻을 수 있습니까? 마찬가지로 INNER JOIN이 자체적으로 작동합니까? 아니면 "JOIN deal"입니까? –
질문에 * "예상하지 못한 결과"*가 포함되어 있으면 언제나 결과를 기대하는대로 게시해야합니다. 물론 답을 얻는 데 도움이되는 많은 정보가 있어야합니다. – netcoder