SELECT ProdKatID,ProdKatNavn FROM ProdRelProdusenter_prodKategorier, ProdProdusentKategorier WHERE ProdKatID NOT IN (SELECT ProdKatID,ProdKatNavn FROM ProdRelProdusenter_prodKategorier, ProdProdusentKategorier WHERE Rel_FK_FKProdKatID=ProdKatID AND Rel_FK_ProdID=5)
SELECT ProdKatID,ProdKatNavn FROM ProdRelProdusenter_prodKategorier, ProdProdusentKategorier WHERE ProdKatID NOT IN (SELECT ProdKatID FROM ProdRelProdusenter_prodKategorier, ProdProdusentKategorier WHERE Rel_FK_FKProdKatID=ProdKatID AND Rel_FK_ProdID=5)
I stedet for NOT IN vil jeg foreslå, at du bruger NOT EXISTS i stedet for, da den normalt vil være en del mere effektiv:
SELECT ProdKatID, ProdKatNavn FROM ProdRelProdusenter_prodKategorier RK WHERE NOT EXISTS (SELECT * FROM ProdProdusentKategorier PK WHERE PK.ProdKatID = RK.Rel_FK_FKProdKatID) AND RK.Rel_FK_ProdID=5
(eller noget i den retning...) :-)
Af hensyn til gennemskueligheden har jeg givet de to tabeller et kort alias: RK=ProdRelProdusenter_prodKategorier PK=ProdProdusentKategorier
Alternativt kunne du også bare bruge en outer join i stedet for en inner join og så vælge de rows, hvor Rel_FK_FKProdKatID er null (altså, at der ikke kunne findes nogen tilhørende rows i ProdRelProdusenter_prodKategorier):
SELECT ProdKatID,ProdKatNavn FROM ProdRelProdusenter_prodKategorier RIGHT OUTER JOIN ProdProdusentKategorier ON Rel_FK_FKProdKatID=ProdKatID WHERE Rel_FK_ProdID=5 AND Rel_FK_FKProdKatID=ProdKatID IS NULL
Bemærk, hvis du bytter om på tabellerne, skal du bruge en LEFT OUTER JOIN (eller bare LEFT JOIN).
Argh, hvad sker det?! Det skulle naturligvis være:
SELECT ProdKatID,ProdKatNavn FROM ProdRelProdusenter_prodKategorier RIGHT OUTER JOIN ProdProdusentKategorier ON Rel_FK_FKProdKatID=ProdKatID WHERE Rel_FK_ProdID=5 AND Rel_FK_FKProdKatID IS NULL
SELECT DISTINCT ProdKatID,ProdKatNavn FROM ProdRelProdusenter_prodKategorier, ProdProdusentKategorier WHERE ProdKatID NOT IN (SELECT ProdKatID FROM ProdRelProdusenter_prodKategorier, ProdProdusentKategorier WHERE Rel_FK_FKProdKatID=ProdKatID AND Rel_FK_ProdID=5)
//kjulius Ingen av dine spørringer virker.
Takk for hjelpen begge to! the_party_dog poster du et svar.
Hvordan kan jeg ta med en WHERE Prodprodukter.P_FKProdID=5
i denne spørringen?
SELECT DISTINCT PID,PNavnNO,PKatNavn,PSisteTest,PSertifikatnr,POpprettet,PAktiv, COUNT(DISTINCT DelTestID) AS AntallDelTester, COUNT(DISTINCT TestBildeID) AS AntallTestBilder FROM ProdProdukter LEFT JOIN ProdProduktKategorier ON (ProdProduktKategorier.PKatID=ProdProdukter.PKategori) LEFT JOIN ProdProduktDelTester ON (ProdProduktDelTester.DelTest_FKPID=ProdProdukter.PID) LEFT JOIN ProdProduktTestBilder ON (ProdProduktTestBilder.TestBilde_FKPID=ProdProdukter.PID) GROUP BY PID,PNavnNO,PKatNavn,PSisteTest,PSertifikatnr,POpprettet,PAktiv ORDER BY PNavnNO ASC
Okay, så har jeg vel læst spørgsmålet forkert... That's life... :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.