10. juli 2005 - 22:57Der er
13 kommentarer og 1 løsning
Join af tabeller
Hej Eksperter
Så er den gal igen...
Jeg har en tabel med nyheder [news], i den tabel er der et felt kaldet Cat_Id (kategori id). Feltet henviser til en anden tabel [News_Cat_Config] hvor det er angivet, hvilke kategorier der må vises.
Så jeg skal altså bruge en SQL som undersøger om den kategori som den givne nyhed er placeret under på vises.
De nyheder som har en godkendt kategori skal vises...
HELP!!!!
P.S.: Min SQL indtil videre: ------------------------------------------------------------------- rs_news.open "Select * From [news] where Active = " & rs_news_config("Show_Active") & " AND Site_Id = " & Site_Id & " ORDER BY Id " & rs_news_config("News_Order") , Conn -------------------------------------------------------------------
Hmm Du burde kunne lave en esktra "AND Cat_Id IN (SELECT _id_felt_ FROM News_Cat_Config Where _aktive_felt_ = True)" Hvor _id_felt_ er det felt som Cat_Id skal sammenlignes med i News_cat_config tabellen og hvor _aktive_felt_ er det felt som ud fra sammenligningen enten er true eller false afhængig af om tabellen skal vises eller ej --- Resultatet burde blive at den sidste select giver alle de Id´er som må vises, og nøgleorder IN tjekker så for hver eneste Cat_Id om den er med i listen over dem som må vises eller ej :o)
Der er en tabel hvor der står nyhedssidens_id (config_id) og kategoriens_id (cat_id) så derfor skal den åbne og tjekke den anden tabel om kategorien fremkommer...
ok men uden kende tabel navnene er det svært skrive det helt korrekt :o) Du siger du har en tabel med cat_id og ønsker dette slået op i en anden tabel Det vil sige du vil faktisk bare se om dette cat_id findes i den anden tabel Hvis feltet tilsvarende cat_id i den anden tabel hedder "ID" (bare for at kalde det noget). Så kan du finde alle ID i den anden tabel ved "Select ID From tabel2" Dette resultat kan du så søge på analogt til mit forrige forslag "Select * From [news] Where cat_id IN (Select ID From tabel2" og så selvfølgelig med dine andre And´s og order by på
Ok det burde så kunne gøres ved Select * From News Where Cat_Id In (Select Cat_Id From News_Cat_Config) og med dine betingelser "Select * From News Where Active = " &rs_news_config("Show_Active")& " AND Site_Id = " &Site_Id& "And Cat_Id In (Select Cat_Id From News_Cat_Config) ORDER BY Id " &rs_news_config("News_Order")
Det virker ikke - jeg tror altså der skal laves noget join.. jeg har hele tiden haft to kategorier tilknyttet, men da jeg fjernede den anden var den nyheder der stadig..
sådan her? "Select Distinct News.* From News Inner Join News_Cat_Config On News.Cat_Id = News_Cat_Config.Cat_Id And News_Cat_Config.Config_Id = "& rs_news_config("id")
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.