Avatar billede andersasp Nybegynder
29. marts 2007 - 10:12 Der er 5 kommentarer og
1 løsning

Link to tabeller i sql

Hejsa, jeg har en sql hvor jeg trækker x antal kategorier ud. Jeg vil dog nu gerne checke i tabellen produkter om der overhovedet ligger nogle i de enkelte kategorier.

Hvis der ikke ligger nogle produkter i en kategori skal den så bare ikke vises???

Så ledes får jeg mine kategorier ud:
SQL = "SELECT * FROM produktmaerker where Mbillede <> '' ORDER BY Moverskrift ASC"

tabel = produkter
Nøgle = Pmaerke

Jeg er det desværre helt blank med at joine tabeller i en SQL sætning. håber er er nogen som kan hjælpe :)
Avatar billede kalp Novice
29. marts 2007 - 10:16 #1
SQL = "SELECT * FROM produktmaerker, produkter where produktmaerker.DINØGLE = produkter.Pmaerke and Mbillede <> '' ORDER BY Moverskrift ASC"

og ellers

SQL = "SELECT * FROM produktmaerker, produkter where produkter.Pmaerke = produktmaerker.DINØGLE  and Mbillede <> '' ORDER BY Moverskrift ASC"
Avatar billede andersasp Nybegynder
29. marts 2007 - 10:24 #2
Det virker jo perfekt, tusinde tak.. hvis jeg skulle have noget where produkter.status = "active" hvor skulle dette så indsættes??

Husk at smide et svar :)
Avatar billede softspot Forsker
29. marts 2007 - 10:25 #3
Alt efter hvilken database du benytter kan du joine tabellerne sammen med inner join, for så vil den kun medtage rækker fra kategori hvor der findes mindst en række i produkttabellen. Jeg ved ikke hvad der vil fungere i MySQL, men SQL Server og Access ville jeg mene kan håndtere flg.:

sql = "SELECT DISTINCT pm.* " & _
      "FROM produktmaerker pm " & _
      "INNER JOIN produkter p ON p.pmaerke = pm.id"

NB: det er muligt at din nøgle i produktmaerker ikke hedder id, men så må du lige udskifte id med navnet på den rigtige nøgle :)

Ved at vælge DISTINCT får du kun rækkerne fra produktmaerker en gang (selvom der måtte være flere produkter tilknyttet kategorien).
Avatar billede softspot Forsker
29. marts 2007 - 10:28 #4
For lige at gøre den SQL-sætning færdig (og indarbejde dine nye krav), så kan du benytte denne:

sql = "SELECT DISTINCT pm.* " & _
      "FROM produktmaerker pm " & _
      "INNER JOIN produkter p ON p.pmaerke = pm.id AND p.status = 'active' " & _
      "WHERE pm.Mbillede <> '' " & _
      "ORDER BY pm.Moverskrift"

Denne vil kun medtage produktmaerker hvor der er tilknyttet aktive produkter...
Avatar billede kalp Novice
29. marts 2007 - 10:30 #5
du skriver den bare ind før order by.. dvs.

SQL = "SELECT * FROM produktmaerker, produkter where produktmaerker.DINØGLE = produkter.Pmaerke and Mbillede <> '' and produkter.status = "active"  ORDER BY Moverskrift ASC"

hvis det var den sql du anvendte
Avatar billede andersasp Nybegynder
29. marts 2007 - 10:58 #6
Ok tusinde tak for hjælpen begge to, dette får jeg helt sikkert meget gavn af på sigt.. :)
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