Avatar billede funkoo Nybegynder
28. september 2001 - 16:14 Der er 12 kommentarer og
1 løsning

Outer Join

Hej,
Hvordan laver jeg en outer join på en sql sætning som:
\"SELECT FORNAVN, EFTERNAVN, INITIALER, GADE, SPORT FROM bruger, adresse, hobby WHERE ADRESSEID=BRUGERID AND HOBBYID=BRUGERID AND NAVN =\"Hans\" \";

Avatar billede mortenfn Nybegynder
28. september 2001 - 16:21 #1
det kan du ikke med mysql

du må køre flere select hvordu bruger resultatet fra den ene til at søge i den næste
Avatar billede mukke Nybegynder
28. september 2001 - 16:25 #2
Så vidt jeg husker (gider ikek lige slå det op) så er en outer join da bare det du som standard får, når du vælger vælger flere tabeller med.

med andre ord ser jeg ikke nogen grundt til at ovenstående ikek skulel virke.

Er du evt. sikker på du ikke mener inner join?
Avatar billede mortenfn Nybegynder
28. september 2001 - 16:34 #3
jeg misforstod vist, symtaksen er sådan ud:

select t1.name, t2.salary from employee AS t1, info AS t2
          where t1.name = t2.name;

Avatar billede funkoo Nybegynder
28. september 2001 - 16:36 #4
Ja,
Med den sql-sætning jeg lige har lavet, skal alle tabller være fyldt før man kan få hans oplysninger.
Jeg vil have at man kan select på en specielt bruger og se hans alle hans informationer også dem som han ikke har udfyldt. Desuden duer denne sætning ikke fordi kan kan skrive flere \"tupler\" af samme bruger. 
Avatar billede funkoo Nybegynder
28. september 2001 - 16:39 #5
dvs at man i dette tilfælde vil skrive
select bruger.FORNAVN, bruger.EFTERNAVN, bruger.INITIALER, adresse.GADE, hobby.SPORT FROM ???????
Hvad skal der herefter(hos ???) stå?
Avatar billede mortenfn Nybegynder
28. september 2001 - 16:50 #6
noget i den retning (tror jeg) jeg har aldrig selv prøvet med 3 tabeller på een gang

SELECT t1.FORNAVN, t1.EFTERNAVN, t1.INITIALER, t2.GADE, t3.SPORT FROM bruger AS t1,
adresse AS t2, hoppy as t3 where t1.name = t3.name = t3.name
Avatar billede funkoo Nybegynder
28. september 2001 - 16:54 #7
Jeg afprøver den lige når jeg kommer hjem. Du må have en god weekend, hvis ikke vi skrives!! 
Avatar billede mukke Nybegynder
28. september 2001 - 17:47 #8
SELECT bruger.FORNAVN, bruger.EFTERNAVN, bruger.INITIALER, adresse.GADE, hobby.SPORT
FROM (brugger inner join adresse on bruger.brugerid = adresse.brugerid) inner join hobby on bruger.hobbyid = hobby.hobbyid);

ovenstående er baseret på at bruger og adresse er forbundet med et felt i hver tabel der heder brugerid (kunen også forestille mig du bruger adresseid) og at bruger og hobby er forbundet med hobbyid i begge tabeller.

hvis det ikke virker så skriv lige hvilke felter du har i tabellerne.
Avatar billede mortenfn Nybegynder
28. september 2001 - 17:48 #9
se den her den er testet og virker den førete virker også

$result = mysql_query(\"SELECT bruger.fornavn, bruger.efternavn, adresse.*, postnumre.city FROM bruger,adresse,postnumre where bruger.bruger = adresse.bruger and adresse.postnr = postnumre.postnr\");
while($row = mysql_fetch_array($result)) {
echo $row[\"fornavn\"];
echo \" \";
echo $row[\"efternavn\"];
echo \"<br>\";
echo $row[\"gade\"];
echo \"<br>\";
echo $row[\"postnr\"];
echo \" \";
echo $row[\"city\"];
}
Avatar billede funkoo Nybegynder
28. september 2001 - 19:08 #10
Til mukke så siger fejlmeddelsen:
Invalid argument value: Not unique table/alias: \'bruger\'
fordi både adressetabellen og hobbytabellen har en fremmed nøgle til brugertabellen.

Men Morten!! Det virker sku!! Tak for hjælpen!! Og ha´en god weeken!
Avatar billede mortenfn Nybegynder
28. september 2001 - 19:11 #11
;O)
Avatar billede Slettet bruger
09. juni 2002 - 00:04 #12
Det kan vil gøres sådan her: SELECT FORNAVN, EFTERNAVN, INITIALER, GADE, SPORT FROM bruger, adresse, hobby WHERE ((ADRESSEID=BRUGERID) AND (HOBBYID=BRUGERID) AND (NAVN ="Hans"))

Det virker i asp
Avatar billede Slettet bruger
09. juni 2002 - 00:04 #13
ouch, det var sgu et gammelt indlæg det her
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
Computerworld tilbyder specialiserede kurser i database-management

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