07. januar 2008 - 22:51Der er
12 kommentarer og 1 løsning
1 Select i 2 tabeller
Jeg har en database med 2 tabeller med forskelligt indhold. I tabel 1 har jeg 2 felter, der hedder [faktura1] og [faktura2]. I tabel 2 har jeg 1 felt, der hedder [faktura3]. Jeg har så en input-variabel, der hedder $faknr.
Hvordan kan jeg med 1 Select hente posterne fra begge tabeller, hvor et af de 2 fakturanr. indeholder værdien $faknr. Hvis der kun skulle hentes i 1 tabel, ville jeg gøre det sådan her:
$sql = "SELECT * FROM tabel1 WHERE fakturanr1 = '".$nr."' OR fakturanr2 = '".$nr."'"; $res = database($sql);
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Jeg vil gerne i 1 kald, hvis muligt, da jeg gerne vil kunne sortere på de Selectede data fra begge tabeller. Der er flere felter, men mere for metodens skyld, nævner jeg kun nogle af dem. Jeg kan se, at jeg ikke har forklaret det ordentligt ovenfor.
De 2 tabeller har ikke samme feltnavne og antal. Tabel 1 har 2 felter ('faktura1' og 'faktura2') Tabel 2 har 1 felt ('faktura3')
Du kan ikke i een SELECT blande forskellige felter (ellers kunne du lave en UNION mellem 2 SELECTs, men det kræver altså eens felter).
Lav 2 SELECTs og bruge det bagvedliggende scriptsprog til at samle data og sortere - en smule Object Orienteret programmering, formentlig en gang nedarvning - så klarer du sikkert den.
Ellers kunne det være din databasestruktur kunne overvejes...
OK - jeg tror jeg laver 2 SELECTS og smider det i et fælles ARRAY, som jeg sorterer og lister. Jeg prøver lige og giver en melding senere (i morgen). Tak for inputtet.
Så fik jeg det til at virke med 2 Selects, hvor jeg smider det i et Array og trækker ud der fra. Tak for inputtet Erik. Er du begyndt at sende point, så kender du jo proceduren. :-)
Hvis data alligevel skal puttes i en ens struktur for at kunne bliver sorteret, så må man vel også kunne lave en UNION hvor den SELECT med færrest felter er suppleret med nogle NULL.
De er meget forskellige. De har bare begge 2 nogle felter med fakturanumre, som jeg vil liste samlet i fakturanr.-orden. Men jeg har det til at virke via 2 x Select og 1 Array.
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.