webForumDet fria alternativet

SQL-hjälp

3 svar · 200 visningar · startad av Skarre

SkarreMedlem sedan apr. 20012 447 inlägg
#1

Jag vill hämta alla användare ur "pers_personnel" som inte har någon relation till kategoritabellen "pers_categories" via "pers_categoryrelations". Jag har försökt med nedanstående utan framgång och hoppas att någon kan hjälpa mig. Jag bifogar tabellstrukturen på bild nedan.

SELECT pers_personnel.*
FROM pers_personnel, pers_categoryrelations, pers_categories
WHERE pers_personnel.userid NOT IN
(SELECT userid FROM pers_categoryrelations WHERE pers_categoryrelations.categoryid = pers_categories.categoryid)

http://member.webforum.nu/1826/relationer.gif

mrblondeMedlem sedan aug. 20011 386 inlägg
#2

Känner mig lite rigrostig, men jag tror du glömde en bit i slutet... osäker dock, var länge sedan jag skrev sql kod.

SELECT pers_personnel.*
FROM pers_personnel, pers_categoryrelations, pers_categories
WHERE pers_personnel.userid NOT IN
(SELECT userid FROM pers_categoryrelations WHERE pers_categoryrelations.categoryid = pers_categories.categoryid and pers_personnel.userid = pers_categoryrelations.userid )
SkarreMedlem sedan apr. 20012 447 inlägg
#3

Tack för den mrblonde! Jag ska testa den när jag får möjlighet.

Engine^Medlem sedan dec. 20002 861 inlägg
#4

Det känns som om följande borde räcka, eftersom om personen inte tillhör någon kategori bör den heller inte vara med i relationstabellen.

SELECT * FROM pers_personnel
WHERE userid NOT IN
(SELECT userid FROM pers_categoryrelations)
Genererad på 513 ms · cache AV · v20260730165559-full.f96bc7eb