Avatar billede sunlock Nybegynder
27. september 2004 - 13:03 Der er 6 kommentarer og
1 løsning

Problemer med at joine korrekt

Jeg har 2 tabller. Den ene (bp):
C1_id | O1_id | Rel_id | C2_id | Value

Den anden (id)
id | name

Jeg har fx i bp:
5 | 1 | 3 | 2 | 4

Disse værdier står i id som 5 rækker:
5 = Klassen
1 = Person
2 = attributten
3 = har
4 = navn

Når jeg så joiner de 2, vil jeg gerne have:
bp.C1_id | id.name | bp.O1_id | id.name | bp.Rel_id | id.name | bp.C2_id osv..
Problemet ligger i at id.name har _forskellige_ værdier i samme select. Altså skal der stå:
5 | Klassen | 1 | Person | 3 | har | 2 | Attributten | 4 | navn

Men dette kan jeg ikke finde ud af - fordi første gang jeg joiner får jeg jo "sat" id.name til Klassen... men næste gang jeg bruger id.name (i samme række) skal den være Person.

Kan man det (håber I forstår spørgsmålet).
Avatar billede arne_v Ekspert
27. september 2004 - 13:16 #1
Prøv:

SELECT bp.C1_id,id1.name,bp.O1_id,id2.name
FROM bp,id id1,id id2
WHERE bp.C1_id=id1.id AND bp.O1_id=id2.id

[du skal selv udvide med flere felter og flere kopier af id]
Avatar billede sunlock Nybegynder
01. oktober 2004 - 10:52 #2
Takker - det virker :-)

Men jeg har lige et spørgsmål - når jeg bruger phpMyadmin (2.2.3 tror jeg) virker det ikke, men alle id's bliver ens - bruger jeg 2.6.x virker det fint.
Skriver jeg sql'en i et hjemmelavet php-script virker det heller ikke... ved du hvorfor det kan være?

Smid da også lige et svar :-)
Avatar billede arne_v Ekspert
01. oktober 2004 - 16:13 #3
Det lyder meget mystisk.

Samme fejl i dit PHP script (all id ens) ?
Avatar billede arne_v Ekspert
01. oktober 2004 - 16:13 #4
svar
Avatar billede sunlock Nybegynder
01. oktober 2004 - 17:31 #5
Ja, hvis jeg udskriver SQL'en i php og kopier den direkte ind i phpmyadmin, så virker det (men ikke i alm. php).

Kan der være noget jeg har "overset"?
Avatar billede arne_v Ekspert
03. oktober 2004 - 14:40 #6
Det burde da være helt det samme om det er PHPMyAdmin eller din PHP kode.
Avatar billede sunlock Nybegynder
04. oktober 2004 - 11:05 #7
Hmm, og nu kommer det sjove så... kopier jeg SQL'en ind i en prompt og fyrer den af direkte mod MySQL udskrives det _også_ korrekt.

Hvad kan det være som gør at PHP vil anderledes?
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