Avatar billede simsen Mester
11. maj 2007 - 12:32 Der er 4 kommentarer og
1 løsning

Flere selects i én select ønskes

Hejsa,

Jeg har 2 selects, som fungerer fint hver for sig, men nu vil jeg frygtelig gerne, at de to selects bliver vist i én visning.

Mine to selects:
SELECT Opskrift.OpskriftId, Opskrift.OpskriftNavn, Opskrift.KategoriId, Opskrift.LandId, Opskrift.TemaId, Opskrift.MaaltidId, Opskrift.Tilberedningstid, Opskrift.BrugerId, Opskrift.Kilde, Opskrift.PortionStk, Opskrift.Protein, Opskrift.Fedt, Opskrift.Kulhydrat, Opskrift.Pris, Opskrift.BilledeNavn, Opskrift.Ingredienser, Opskrift.Fremgangsmaade, Opskrift.Servering, Opskrift.Fedtfattig, Opskrift.AntalVisninger, Opskrift.Offentlig, Opskrift.Dato, Opskrift.Print, Opskrift.Points, Opskrift.AntalPersonerAfgivetPoints
FROM Opskrift
WHERE Opskrift.BrugerId  = 1;

og

SELECT GemteOpskrifter.GemteOpskrifterId, GemteOpskrifter.BrugerId AS GemteOpskrifter_BrugerId, GemteOpskrifter.OpskriftId AS GemteOpskrifter_OpskriftId, Opskrift.OpskriftId AS Opskrift_OpskriftId, Opskrift.OpskriftNavn, Opskrift.KategoriId, Opskrift.LandId, Opskrift.TemaId, Opskrift.MaaltidId, Opskrift.Tilberedningstid, Opskrift.BrugerId AS Opskrift_BrugerId, Opskrift.Kilde, Opskrift.PortionStk, Opskrift.Protein, Opskrift.Fedt, Opskrift.Kulhydrat, Opskrift.Pris, Opskrift.BilledeNavn, Opskrift.Ingredienser, Opskrift.Fremgangsmaade, Opskrift.Servering, Opskrift.Fedtfattig, Opskrift.AntalVisninger, Opskrift.Offentlig, Opskrift.Dato, Opskrift.Print, Opskrift.Points, Opskrift.AntalPersonerAfgivetPoints
FROM Opskrift INNER JOIN GemteOpskrifter ON Opskrift.OpskriftId=GemteOpskrifter.OpskriftId
WHERE GemteOpskrifter.BrugerId=1;

Det jeg gør, er at jeg har en opskrift tabel, hvor jeg gerne vil hente alt ud, der har en bestemt brugerId (i dette tilfælde 1). Så har jeg lavet mig endnu en tabel, hvor brugeren, kan tilføje opskrifter fra andre brugere. I den tabel, vil jeg så hente alle opskrifter ud, som den pågældende bruger har tilføjet til tabellen (stadig brugerid = 1).

Det skal pointeres, at det jo IKKE er en join med Tabel.brugerid = Tabel2.brugerid - men istedet på opskriftid.

Nogen der kan give mig en select kommando, hvor jeg får begge dele ud?

mvh
simsen :-)
Avatar billede terry Ekspert
11. maj 2007 - 16:50 #1
The easiest method is to make two queries, one for each of the SELECTs above.
Then make a third query where you SELECT from the two first queries and JOIN on the two fields which are related.
Avatar billede fdata Forsker
11. maj 2007 - 22:39 #2
Hvis jeg forstår dig rigtigt, vil du gerne hente både fra den ene og den anden tabel.
Det kan du klare med en UNION forespørgsel:

SELECT Opskrift ....
UNION
SELECT GemteOpskrifter ...

Sørg for at "balancere" dine SELECT'er, altså sørg for at de trækker de samme felter ud - og tjek, at felterne har samme navn.
Avatar billede simsen Mester
12. maj 2007 - 00:28 #3
fdata

Lige det jeg skal bruge.....

Må jeg være fræk og spørge et tillægsspørgsmål;

Når jeg så vil have en where ekstra på - altså hvor jeg vil finde foreksempel alle de der ligger i tabellen nu - om der findes et ord med mel i eksempelvis ingredienser - gør jeg det så således;

(SELECT Opskrift....
UNION
SELECT GemteOpskrifter...)
WHERE ingredienser = %mel%

eller skal jeg så lave ekstra WHERE på begge selecter?

mvh
simsen :-)
Avatar billede simsen Mester
12. maj 2007 - 10:20 #4
Jeg kan se, de skal med i hver select statement....

Endnu engang tak

mvh
simsen :-)
Avatar billede fdata Forsker
13. maj 2007 - 12:26 #5
WHERE ingredienser Like '*mel*'
... i hver SELECT, helt korrekt.

Tak for point  ;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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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