2011-07-20 10 views
7

Mam tabeli „user” z kilku wierszy, które są zarówno kluczy obcych do tej samej tabeli „zawartości” trochę tak:Najlepszy sposób, aby połączyć wiele kluczy obcych do tej samej tabeli

user.id 
user.bio 
user.signature 

content.id 
content.text 

wiem to nie jest właściwą drogą do zrobienia tego z punktu widzenia normalizacji, ale tabela "zawartości" pochodzi z oddzielnej bazy danych, której nie można zmodyfikować. I nie chcę duplikować danych.

Mam problem ze znalezieniem dobrego sposobu na dołączenie do nich. Wszystko, co mogłem zrobić, to to, ale wydaje się to marnotrawstwem.

SELECT bio.bio, text.text 
FROM(
SELECT content.text as bio 
FROM content, user 
WHERE user.bio = content.id 
AND user.id = 4) AS bio, 

SELECT content.text as content 
FROM content, user 
WHERE user.signature = content.id 
AND user.id = 4) AS content 

Odpowiedz

10

Możesz dołączyć do jednej tabeli wiele razy, jeśli dać każdym przypadku inny alias:

SELECT bio.text, sig.text 
FROM user u 
JOIN content bio ON u.bio  = bio.id 
JOIN content sig ON u.signature = sig.id 
WHERE u.id = 4 
+0

Oh! Miły. Dzięki! –

Powiązane problemy