Avatar billede 44fire44 Nybegynder
09. januar 2008 - 14:15 Der er 8 kommentarer og
1 løsning

Hente data fra tabel2, hvis nummer eksisterer i tabel1 og tabel2

Hej eksperter

Ja, nu er jeg endnu engang gået i stå over et problem

Jeg skal have hentet noget data ind fra en tabel. - Denne data har et "id" - jeg har desuden en anden tabel med privilegier, alt efter hvilken data der skal vises

tabel1 består at et brugernummer samt et "id"
tabel2 beståd af et "id" samt en masse andet info

når de to "id"'er er ens så skal dataen fra tabel2 vises

Skal jeg bruge LEFT JOIN eller hvordan henter jeg den data ind i min query?

/K
Avatar billede gammelhat Nybegynder
09. januar 2008 - 14:41 #1
select * from tabel1 left join tabel2 on tabel1.id=table2.id;
select * from tabel1 inner join join tabel2 on tabel1.id=table2.id;
select * from tabel1,tabel2 where tabel1.id=tabel2.id

left join returnerer også rækken, selv om id ikke findes i tabel2. Det gør de to andre ikke
Avatar billede 44fire44 Nybegynder
09. januar 2008 - 15:01 #2
nu er det faktisk sådan at privilegietabellen indeholder id'erne fra alle brugerne - kan jeg godt skrive følgende

select * from tabel1,tabel2 where tabel1.id=tabel2.id AND table1.user=table2.user ?
Avatar billede 44fire44 Nybegynder
09. januar 2008 - 15:09 #3
således at den kun henter dataen ud hvor id'et på dataen samt bruger-id'et er det samme
Avatar billede gammelhat Nybegynder
09. januar 2008 - 15:33 #4
Enten misforstår jeg, eller også har du ikke en optimal tabelstruktur. Er det ikke kun dit id, som sammenkæder posterne i de to tabeller?
Avatar billede 44fire44 Nybegynder
09. januar 2008 - 15:39 #5
jo, det er det - både og. Og det er tildels også mig der vrøvler :P

en lille nærmere forklaring

Jeg har et system som består af tre tabeller

Den ene tabel indeholder brugere incl. deres telefonnummer som er brugeridét

Den anden tabel indeholder en masse data - i dette tilfælde om vine. Altså drue, land, årgang osv - samt et ID

Den tredje tabel er så en privilegie-tabel hvor jeg laver en post for hver vin som en bruger skal have adgang til

fx
wine_id - user_id
11 - 88888888
31 - 88888888
23 - 22446688

jeg er så interesseret i at hente alle wine_id(privilegietabellen)==vin_number(fra vin-data tabellen) hvor user_id(fra brugertabellen) = _GET[id]

er det bedre forklaret eller er det endnu mere indviklet nu? :P
Avatar billede 44fire44 Nybegynder
09. januar 2008 - 15:46 #6
Kommer den til at se sådan ud?

$nummer = mysql_real_escape_string($_GET[id]);
$query = mysql_query("SELECT * FROM vine,wine_priv WHERE vine.vin_number = wine_priv.wine_id AND wine_priv.user_id = '$nummer'");
Avatar billede gammelhat Nybegynder
09. januar 2008 - 15:56 #7
Ja, det giver lidt mere mening. Det ser rigtigt ud
Avatar billede 44fire44 Nybegynder
09. januar 2008 - 21:09 #8
kanon :) - og det virker. Vil du have nogle points?
Avatar billede 44fire44 Nybegynder
19. januar 2008 - 14:25 #9
du får lige til i morgen - ellers lukker jeg bare :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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