2012-01-13 15 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 
);