webForumDet fria alternativet
Logga in / Bli medlem

Hjälp med en join (?)

Databaser & SQL

5 svar · 351 visningar · startad av colione

Medlem sedan juni 20014 421 inlägg
Frågan#1

Hej jag har två tabeller i min mysql 5 databas.

Den ena ser ut såhär:

|text|title|to|from|

to och from innehåller en siffra som återfinns i tabellern register, som förkortat ser ut såhär:

|id|anvandarnamn|

Nu vill jag alltså välja ut text, title samt användarnamnet som tillhör de olika siffrorna som finns i to och from.

Medlem sedan juni 200032 967 inlägg
#2
select text, title, r1.anvandarnamn as toname, r2.anvandarnamn as fromname
from tabell1
inner join register r1  on tabell1.to = r1.id
inner join register r2  on tabell1.from = r2.id

From är dock inget bra fältnamn, det är rätt så mycket reserverat. Eventuellt är också text reserverat, men det kanske inte är dina riktiga fältnamn?

Medlem sedan juni 20014 421 inlägg
#3

Jag får följande fel:

phpmyadmin skrev:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'to = r1 . id inner join register r2 on mail . user = r2 . id
LIMIT 0, 30' at line 1

på frågan som ser ut såhär, jag har provat med backsticks ` tunt text också:

SELECT text , title, r1.anvandarnamn AS toname, r2.anvandarnamn AS fromname
FROM mail
INNER JOIN register r1 ON mail.to = r1.id
INNER JOIN register r2 ON mail.user = r2.id
LIMIT 0 , 30

From hette egentligen user, jag som skrev fel.

Medlem sedan juni 200032 967 inlägg
#4

to är också reserverat.

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

Medlem sedan juni 20014 421 inlägg
#5

Aj då, inte jag som har gjort databasen. Hur exakt ska jag backsticka den/escapea den för att få den att gå igenom egentligen?

Medlem sedan juni 200032 967 inlägg
#6

Om du absolut måste backticka, så borde det se ut så här:

SELECT text , title, r1.anvandarnamn AS toname, r2.anvandarnamn AS fromname
FROM mail
INNER JOIN register r1 ON mail.`to` = r1.id
INNER JOIN register r2 ON mail.user = r2.id
LIMIT 0 , 30

mvh

264 ms totalt · 4 externa anrop · v20260731065814-full.0583408b
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)