Avatar billede fhansen Praktikant
14. oktober 2006 - 22:28 Der er 5 kommentarer og
1 løsning

Tquery returnere flere poster

Hejsa.

Jeg bruger flg. SQL, men hvis min kunde har mere end en lejeaftale, lister queryen kunden flere gange, hvordan kommer jeg udover dette.

Skulle måske lige sige at lige nu kører programmet på Paradox, men meningen er at data skal lægges over i MYSQL

LoadClientSql('Select * From Kunder AS Cl, Leje AS LJ '+
                  'Where  CL.Nummer = LJ.Kunde '+
                  'ORDER BY %S','LJ.Kunde');


Hilsen

Finn
Avatar billede erikjacobsen Ekspert
14. oktober 2006 - 23:32 #1
Ja, men hvad er det du vil have ud? Lige nu beder du om alle kunder, samt alle deres lejeaftaler. Skal du kun have id, eller navn, på de kunder, der har en lejeaftale? Eller skal du bruge noget fra deres lejeaftale?

Det kan jo ikke lade sig gøre at rette din SQL uden at vide hvad den skal bruges til ;)
Avatar billede fhansen Praktikant
15. oktober 2006 - 00:11 #2
Jeg skal bruge en liste over de kunder, der har lejeaftaler
Avatar billede erikjacobsen Ekspert
15. oktober 2006 - 00:12 #3
Det er så stadig ikke præcist, for hvad udgøres listen af. Men lad os nu sige du kan nøjes med kundenummer, så skulle du ku'

  SELECT DISCTINCT(CL.Nummer) FROM ...restenafdetduskrev...
Avatar billede fhansen Praktikant
15. oktober 2006 - 00:17 #4
Det skal jo bare gøres sådan

LoadClientSql('SELECT * FROM Kunder '+
                  'WHERE Nummer IN (SELECT Kunde FROM Leje) '+
                  'ORDER BY %S','Nummer');
Avatar billede fhansen Praktikant
17. oktober 2006 - 22:40 #5
Lukker
Avatar billede hrc Mester
18. oktober 2006 - 11:14 #6
Det er Ok at du lukker svaret igen nu du selv har fundet løsningen. Du var heldig EJ gad kommentere for spørgsmålet var ubehjælpeligt stillet.

  select * from Kunder k
    join Leje l on (l.kunde = k.nummer)
    order by %s, k.nummer

Du bør undgår sub-selectes da de er tunge og måske bevæge dig over i noge med join.

Det er meget grimt og forvirrende at l.kunde refererer til k.nummer. Det burde være noget lignende k.Id = l.kundeId

Endelig bør du ALTID (!) undgå "select * ...", men pertentligt angive de felter du skal have med i din query. Det er mere arbejde men det andet er sjusk og giver tit en unødvendig mængde dataoverførsel.
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