왼쪽 조인은 왼쪽 테이블의 모든 행을 표시해야하지만 다음 쿼리를 실행할 때 하나 이상의 카운트가있는 위치 값만 가져옵니다. 누군가가 내가 잘못 갈 수있는 곳으로 나에게 몇 가지 지침을 제공 할 수 있습니다하십시오 : 당신은 orderstateId = 1
말을하는 사전모든 왼쪽 테이블 값을 표시하지 않는 왼쪽 조인
답변
WHERE
조건은 OUTER JOIN
을 INNER JOIN
으로 다시 변환합니다.
일치하지 않는 행은 모든 orders
열에 대해 NULL
이고 WHERE
절에 의해 제거됩니다. 이 시도.
SELECT places.placeId,
placeName,
COUNT(orderId) AS orderCount
FROM places
LEFT JOIN orders
ON places.placeId = orders.placeId
AND orders.stateId = 1
AND orders.orderstateId = 1
AND orders.orderName NOT LIKE 'Delivery%'
WHERE places.companyId = 1
GROUP BY places.placeId,
places.placeName
ORDER BY orderCount DESC,
placeName ASC
도움 주셔서 감사합니다. 정말 감사합니다. –
에서
SELECT places.placeId,
placeName,
COUNT(orderId) AS orderCount
FROM places
LEFT JOIN orders
ON places.placeId = orders.placeId
WHERE places.companyId = 1
AND stateId = 1
AND orderstateId = 1
AND orderName NOT LIKE 'Delivery%'
GROUP BY places.placeId,
places.placeName
ORDER BY orderCount DESC,
placeName ASC
감사합니다. 나는 이것이 orders.orderstateId = 1
에 바인딩하는 것 같아요. 이 조건은 일치하지 않고 왼쪽으로 결합 할 때 발생하는 null orderstateId
에 대해 실패합니다. stateID
, orderstateID
및 OrderName
이 ORDERS
테이블에서 온이 컬럼은 다음 다음 문제가있는 경우 orders.orderstateId = 1 OR orders.orderstateId IS NULL
에
는변경을. 위에서 볼 수 있듯이 orders
테이블에 places.placeID
이 없으면 orders
테이블의 다음 열은 nulls
입니다. 그리고 그것이 당신이 orders
테이블에 제공 한 조건으로 인해 일부 기록이 보이지 않는 이유입니다.
LEFT JOIN
을 사용하는 경우에도 모든 행은 WHERE
절의 조건을 충족해야합니다. 이 경우 WHERE
절에는 orders
과 관련된 요구 사항이 있으므로 orders
이 일치하지 않는 행은 places
으로 반환되지 않습니다.
간단한 수정은 null 값이 WHERE
절을 충족 할 수 있도록하는 것입니다 : 다른 변수
orderstateId = 1
(orderstateId is NULL or orderstateId = 1)
변경과 마찬가지로.
이것은 아마도 사용자가 원하는대로 수행 할 수 있지만 orders
테이블의 null 값을 가진 행을 포함시켜 결과를 엉망으로 만들 수 있는지 확인해야합니다. 다른 방법으로 쿼리를 다시 디자인하는 것이 더 좋을 수도 있습니다.
- 1. 왼쪽 테이블의 값을 사용하여 두 테이블 조인
- 2. 4 테이블 오라클과 왼쪽 조인
- 3. 왜이 왼쪽 조인 쿼리가 왼쪽 테이블의 모든 데이터를로드하지 못했습니다?
- 4. 왼쪽 조인 합계 SQL
- 5. SQL 왼쪽 왼쪽
- 6. 실제 왼쪽 외부 조인
- 7. MySQL 왼쪽 된 조인
- 8. LINQ의 OrderBy와 왼쪽 조인
- 9. Mysql 왼쪽 조인이 모든 값을 반환하지 않습니다.
- 10. 여러 테이블/왼쪽 조인에 대한 적절한 조인 +
- 11. 왼쪽 외부 조인 - SQL2005
- 12. 일치하지 않는 왼쪽 조인 행을 업데이트하십시오.
- 13. 왼쪽 외부 조인 IEnumerable
- 14. 오른쪽 조인 대 왼쪽 조인
- 15. 3 테이블, 왼쪽 외부 조인, SUM
- 16. NHibernate에 - 왼쪽 조인
- 17. T1에서 모든 행을 반환하지 않는 왼쪽 외부 조인
- 18. 왼쪽 외부 조인 문제
- 19. 왼쪽 SQL로 LINQ에서 조인
- 20. 왼쪽 조인 최적화
- 21. LINQ로 왼쪽 조인 오류
- 22. linq 2 왼쪽 조인
- 23. 왼쪽 외부 조인 액세스?
- 24. SQL에서 왼쪽 조인
- 25. 다중 왼쪽 조인 사용
- 26. Mysql - 왼쪽 조인 도움말
- 27. Mysql 열의 조건과 왼쪽 조인
- 28. 조건부 왼쪽 조인 작성 방법
- 29. Linq 왼쪽 외부 조인 쿼리
- 30. 최대 절전 결과는 왼쪽 조인
쿼리의 모든 다양한 열은 어떤 테이블에 있습니까? 'stateId, orderstateId, orderName' 중 하나라도'orders'에 있다면 당신은 관련 필터를'where'보다는 join으로 옮길 필요가 있습니다. –
@ MartinsSmith 답변에 넣어서 내가 업 그레 이드 할 수 있도록하십시오. – Barmar
stateId, orderstateId 및 orderName은 모두 orders 테이블에 있습니다. 순서가없는 모든 장소를 가져 오는 두 번째 쿼리를 수행하여 반올림 할 수 있지만 가능한 경우 피하려고했습니다. –