2012-01-13 6 views
0

요소가있는 테이블이 있습니다. 해당 요소를 페이지에 연결할 수 있습니다. 이를 위해, pageRelations 테이블을 만들었습니다. 이제는 페이지에 링크되어 있지 않은 요소를 얻고 싶습니다.id가 열에 있는지 확인하십시오.

SELECT `elements`.*, `pageRelations`.`pageId`, `pageRelations`.`elementId` 
FROM (`parts`, `pageRelations`) 
WHERE `pageRelations`.`pageId` = '1' 
AND `parts`.`id` NOT IN (pageRelations.relationId) 

결과가 정확하지 않습니다.

도움을 주셔서 감사합니다.

답변

-1

아마도 이와 같은 것을 찾고 계실 것입니다.

SELECT e.* 
FROM elements AS e 
LEFT JOIN pageRelations AS pr 
ON e.Id = pr.elementId 
WHERE pr.elementId IS NULL 
+0

흠, 이것은 나를 위해 작동하지 않습니다. 나는 어떤 결과도 얻지 못한다. 귀하의 답변을 주셔서 감사합니다 –

+0

NULL 값을 찾고 있지만 연결되지 않은 요소가 없습니다 –

+0

LEFT JOIN 왼쪽 테이블에 null 값이 있으면 일치하는 요소가 없음을 나타내므로 링크가 없음을 나타냅니다. – Mchl

0

이것은 페이지 관계 테이블에서 요소를 찾을 수없는 모든 요소 가져 오기를 말합니다.

SELECT e.* 
FROM elements AS e 
WHERE e.Id NOT IN (
    SELECT DISTINCT elementId 
    FROM pageRelations 
); 
관련 문제