Avatar billede bruhnsweb Nybegynder
10. juli 2005 - 22:57 Der 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
-------------------------------------------------------------------
Avatar billede busschou Praktikant
11. juli 2005 - 07:29 #1
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)
Avatar billede bruhnsweb Nybegynder
11. juli 2005 - 08:51 #2
Det har ikke noget med aktiv-felter at gøre.

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...
Avatar billede busschou Praktikant
11. juli 2005 - 08:57 #3
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å
Avatar billede bruhnsweb Nybegynder
11. juli 2005 - 09:07 #4
ok - så skriver jeg det lige som det er rigtigt.

[News]
Id
Cat_Id
Title
osv...

[News_Cat_Config]
Id
Cat_Id

Så den skal vise alle de nyheder, hvis cat_id eksisterer i tabellen [News_Cat_Config]
Avatar billede busschou Praktikant
11. juli 2005 - 09:10 #5
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")
Avatar billede bruhnsweb Nybegynder
11. juli 2005 - 09:29 #6
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..
Avatar billede busschou Praktikant
11. juli 2005 - 09:49 #7
okey
mayby
Select Distinct News.* From News Inner Join News_Cat_Config On News.Cat_Id = News_Cat_Config.Cat_Id
Avatar billede bruhnsweb Nybegynder
11. juli 2005 - 09:53 #8
se det der må jeg lære en dag :o)

Men gider du ikke at bygge ind i sætningen at den skal vælge: News_Cat_Config.Cat_Id - JA, men også om Config_Id = rs_news_config("id")
Avatar billede busschou Praktikant
11. juli 2005 - 09:55 #9
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")
Avatar billede bruhnsweb Nybegynder
11. juli 2005 - 10:10 #10
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]The text, ntext, or image data type cannot be selected as DISTINCT.

/modules/news.asp, line 11
Avatar billede bruhnsweb Nybegynder
11. juli 2005 - 10:11 #11
linje 11:
rs_news.open "Select Distinct News.* From News Inner Join News_Cat_Config On News.Cat_Id = News_Cat_Config.News_Cat_Id And News_Cat_Config.News_Config_Id = "& rs_news_config("id") , Conn
Avatar billede busschou Praktikant
11. juli 2005 - 10:18 #12
hm prøv
rs_news.open "Select * From News Inner Join News_Cat_Config On News.Cat_Id = News_Cat_Config.News_Cat_Id And News_Cat_Config.News_Config_Id = "& rs_news_config("id") , Conn
Avatar billede bruhnsweb Nybegynder
11. juli 2005 - 10:21 #13
GUD - er vist ordet jeg lige kan finde til dig ;o)

PERFEKT!!! Smid et svar =D
Avatar billede busschou Praktikant
11. juli 2005 - 10:25 #14
hehe gud og gud
Men det er godt det virker :o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester