18. februar 2004 - 16:06Der er
3 kommentarer og 1 løsning
Kan ikke joine
Hej
Jeg vil gerne have listet de kategorier, som en annonce er knyttet til.
Noget med:
1) Find først de kategorier i PLUSPROFIL_KATEGORIER, som annoncen PLUSPROFIL_ANNONCE er knyttet til. 2) Brug kategorier at finde titlerne med over i LINKS_CATEGORIES. 3) Udskriv så titlerne.
CREATE TABLE PLUSPROFIL_ANNONCE ( Annonce_ID int(11) NOT NULL auto_increment, Member_ID int(11) NOT NULL default '0', Navn text, PRIMARY KEY (Annonce_ID) ) TYPE=MyISAM;
CREATE TABLE LINKS_CATEGORIES ( ID int(11) NOT NULL auto_increment, GroupID int(11) NOT NULL default '0', Title text NOT NULL, Public int(11) NOT NULL default '0', PRIMARY KEY (ID,GroupID), KEY ID (ID), KEY GroupID (GroupID) ) TYPE=MyISAM;
Noget ala:
strSQL="SELECT ID, TITLE FROM LINKS_CATEGORIES left join PLUSPROFIL_KATEGORIER on LINKS_CATEGORIES.ID = PLUSPROFIL_KATEGORIER.PlusprofilID WHERE PLUSPROFIL_KATEGORIER.PlusprofilID = " & rs("ANNONCE_ID")
Men det dur ikke, fordi den blot udskriver de kategorier, som er lig med ANNONCE_ID (og ikke dem, som den er tilknyttet).
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Hvis du skal have listet alle kategorier, som en annonce er tilknyttet kan du gøre følgende (går ud fra, at du ikke skal bruge oplysninger fra annoncen, da dette ikke er i dit eksempel)
SELECT cat.ID, cat.TITLE FROM PLUSPROFIL_KATEGORIER annon_cat LEFT JOIN LINKS_CATEGORIES cat ON annon_cat.KategoriID = cat.ID WHERE annon_cat.Plusprofil = [ANNONCE_ID];
strSQL="SELECT DISTINCT KategoriID from PLUSPROFIL_KATEGORIER WHERE PLUSPROFIL_KATEGORIER.PlusprofilID = " & rs("ANNONCE_ID") Set rs2=dataConn.Execute(strSQL)
if not rs2.eof then do while not rs2.eof strSQL="SELECT ID, TITLE FROM LINKS_CATEGORIES WHERE ID = " & rs2("KategoriID")
Min fejl. der skulle stå WHERE annon_cat.PlusprofilID = .... (der manglede 'ID' på feltnavnet).
Hvis du lægger mærke til det, så vælges titlen fra cat.TITLE og 'cat' er LINK_CATEGORIES-tabellem (se gerne ovenstående).
Sætningen vælger alle poster i PLUSPROFIL_KATEGORI, hvor PlusprofilID = annoncens id. Herefter left join'es med LINKS_CATEGORIES, hvorfra id og titel vælges. Left join gør, at du får alle poster fra PLUSPROFIL_KATEGORI med samt dem, der kan join'es med fra LINK_CATEGORIES.. - den skulle være god nok.
P.S. Din metode virker også, men som du kan se af ovenstående kan det laves med en enkelt SQL-forespørgsel, hvilket jeg mener er at foretrække...
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.