2011-08-17 3 views
1
SELECT * FROM `tbl_wines` 
LEFT JOIN `tbl_wines_attrib` 
ON `tbl_wines`.`intWinesID` = `tbl_wines_attrib`.`intWinesID` 
AND `tbl_wines_attrib`.`intAttributeValueId` = 4 
WHERE `intStatus` = 1 
LIMIT 0 , 20 

이 쿼리가 정확한지 알아야합니다. 그러나 모든 값을 tbl_wines에서 얻는 것뿐만 아니라 값은 intAttributeValueId = 4입니다.데이터베이스에서 표시

아무도 도와 줄 수 있습니까?

답변

2

WHERE 조건 대신 JOIN의 일부로 조건이 설정되어있는 것으로 보입니다. 대신 tbl_wines_attrib.intAttributeValueId =4WHERE 절로 이동하여 다음을 시도하십시오.

SELECT * FROM `tbl_wines` LEFT JOIN `tbl_wines_attrib` ON `tbl_wines`.`intWinesID` = `tbl_wines_attrib`.`intWinesID` WHERE `tbl_wines_attrib`.`intAttributeValueId` = 4 AND `intStatus` =1 LIMIT 0 , 20 
+0

이 작업은 효과가 있지만 처음에는 JOIN을 제거하고 WHERE 절과 두 번째 AND를 사용하면됩니다. –

+0

@ Scott의 Oasys 나중에 너는 옳았다. 정말 고맙습니다. 내가 무엇을 필요가있어 – jeni

+0

@ 마이클 감사합니다. 그러나 Scott의 Oasys는 정확합니다. :) – jeni

관련 문제