Avatar billede hobz Nybegynder
31. marts 2003 - 20:02 Der er 12 kommentarer og
1 løsning

Datastruktur

Hvordan kan jeg select'e et kategori-id fra en table og vælge alle med dette kategori-id i en anden table, kategorisk!

Eks. (db struktur):

ID NAVN
1 PUNKT1
2 PUNKT2
3 PUNKT3

NAVN REFERENCE ID
JAN 3
PER 2
ALLAN 2
JIMMY 1

Jeg vil gerne have at MySQL returnerer data'en (ikke visuelt) således:

PUNKT1:
JIMMY
------
PUNKT2:
ALLAN
PER
------
PUNKT3
JAN
Avatar billede ahv Nybegynder
31. marts 2003 - 20:05 #1
$query = mysql_query("SELECT tabel1.*, tabel2.* FROM tabel1, tabel2 WHERE tabel1.id = tabel2.id")

Noget lignende dette.
Avatar billede ahv Nybegynder
31. marts 2003 - 20:06 #2
Fik ikke lige al PHP kode væk, din select:

SELECT tabel1.*, tabel2.* FROM tabel1, tabel2 WHERE tabel1.id = tabel2.id
Avatar billede hobz Nybegynder
31. marts 2003 - 20:14 #3
Ja, den er jeg med på, men jeg synes ikke at mysql organisere dataen.
Jeg bruger den i et php-script og med "while( $row = mysqlfetchObj )" kommer data'en ikke ud punktvis (jvf. PUNK1, PUNKT2 osv.)
Avatar billede ahv Nybegynder
31. marts 2003 - 20:17 #4
Nu skriver den dem bare ud i tilfældig rækkefølge?

Så prøv med:
order by tabel1.id
til sidst.
Avatar billede hobz Nybegynder
31. marts 2003 - 20:20 #5
Jeg tror ikke du forstår.
Outputtet bliver bare sorteret.

Jeg vil gerne kunne skelne mellem PUNKT1 & PUNKT2, så jeg kan kategorisere JIMMY under PUNKT1, PER & ALLAN under PUNKT2 osv.
Avatar billede arne_v Ekspert
31. marts 2003 - 20:34 #6
Noget i retning af:

SELECT PERSON.NAVN,PUNKT.NAVN
FROM PERSON,PUNKT
WHERE PERSON.ID=PUNKT.ID
GROUP BY PUNKT.NAVN;

?
Avatar billede arne_v Ekspert
31. marts 2003 - 20:38 #7
Nope. Duer vist ikke. Der er ike nogen aggregeret funtktion.
Avatar billede hobz Nybegynder
31. marts 2003 - 20:40 #8
GROUP BY lader til IKKE at ville acceptere flere af samme PUNKT
Avatar billede arne_v Ekspert
31. marts 2003 - 20:41 #9
Enten den trivielle:

SELECT PERSON.NAVN,PUNKT.NAVN
FROM PERSON,PUNKT
WHERE PERSON.ID=PUNKT.ID
ORDER BY PUNKT.NAVN;

eller hvis antallet af punkter er lille, fast og kendt:

(SELECT ID,NAVN FROM PERSON WHERE ID=1) UNION
(SELECT ID,NAVN FROM PERSON WHERE ID=2) UNION
(SELECT ID,NAVN FROM PERSON WHERE ID=3)
Avatar billede hobz Nybegynder
31. marts 2003 - 20:53 #10
UNION !?

Det er ikke nødvendigvis lille, fast og kendt, men derimod temlig dynamisk.
Avatar billede arne_v Ekspert
31. marts 2003 - 21:08 #11
UNION er valid SQL, men du vil jo næppe hardcode den SQL
medmindre ID'erne er faste.
Avatar billede hobz Nybegynder
31. marts 2003 - 21:46 #12
Jo altså.. ID'erne referere jo til ID'er i en anden table. Så de er vel faste i den forstand.
Avatar billede hobz Nybegynder
01. april 2003 - 18:43 #13
Kan man åbenbart ikke.
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