Selecteer artikelen die in een tabel staan, maar niet in een tweede tabel

Ik ontwikkel een Android 3.1-tablettoepassing die SQLite 3 gebruikt.

Ik heb deze drie tabellen:

| Articles    |
+-------------+
| articleId   |
+-------------+
| description |
+-------------+


| OrdeArticle |
+-------------+
| orderId     |
+-------------+
| articleId   |
+-------------+


| EReportArticle |
+----------------+
| eReportId      |
+----------------+
| articleId      |
+----------------+

Ik wil alle artikelen selecteren die zich in de tabel OrdeArticle bevinden, maar ze staan ​​niet in de tabel EReportArticle .

Hier is mijn SQL-zin werkt niet :

SELECT 
   Article.articleId,
   Article.description
FROM
   Article,
   OrdeArticle,
   EReportArticle
WHERE
   OrdeArticle.orderId = ? AND 
   Article.articleId = OrdeArticle.articleId AND
   EReportArticle.eReportId = ? AND
   Article.articleId != EReportArticle.articleId;

Wat doe ik verkeerd?

0

1 antwoord

Probeer de IN-instructie te gebruiken om te controleren of articleId in de ene tabel voorkomt en niet in de andere

SELECT articleId, description
FROM Articles
WHERE articleId IN (SELECT articleId FROM OrdeArticle) AND
articleId NOT IN (SELECT articleId FROM EReportArticle)
1
toegevoegd
Ja! Het werkt!
toegevoegd de auteur VansFannel, de bron