2011-07-20 15 views
7

私は同じテーブルちょっとこのような「コンテンツ」の両方の外部キーですいくつかの行を持つ表「ユーザー」を持っているに複数の外部キーに参加します正規化の観点からこれを行う正しい方法ではありませんが、 "コンテンツ"テーブルは、変更できない別のDBからのものです。そして私はデータを複製したくない。ベストな方法は、同じテーブル

Imに参加するには問題があります。私ができることはこれだけですが、これは無駄に思えます。

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 

答えて

10

あなたは、各インスタンスに異なるエイリアス与える場合には、一つのテーブルを複数回参加することができます。

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

ああ!ニース。ありがとう! –

関連する問題