2017-10-27 2 views
0

EDIT - SOLUTION:MYSQL Left Joinを選択する - 2つのdiffidを使用して同じテーブルから2行を取得する方法?

SELECT a.content as title, c.content as title_text, b.content as content FROM content_big AS b LEFT JOIN content_small AS a on a.id = 7 LEFT JOIN content_small AS c on c.id = 8 WHERE b.id = 1 

私はこのような選択をやろうとしている:

  • ID = 1
  • 取得テーブルcontent_bigから列の内容を取得カラムの内容テーブルcontent_small ID = 7
  • は、ID = 8

選択1を使用してこれらのデータを取得することは可能ですテーブルcontent_smallから列の内容にするには?

私はこのクエリのいくつかのバリエーションしようとしている:

SELECT content_small.content as title, content_small.content as title, content_big.content as content 
FROM content_big LEFT JOIN 
     content_small 
     on content_small.id = 7 LEFT JOIN 
     content_small 
     on content_small.id = 8 
WHERE content_small.content = 1 

をしかし、私はテーブル/エイリアス

一意ではありません、このエラーを取得しています: 'content_small'

+1

これをすべて1つの行に入れたいのですか、それとも異なる行に入れることができますか? –

+0

あなた自身の質問に自由に回答してください。 – Strawberry

答えて

0

次のように、テーブルのエイリアスを行います。

SELECT cs1.content as title, cs1.content as title, content_big.content as content 
FROM content_big LEFT JOIN 
     content_small cs1 
     on content_small.id = 7 LEFT JOIN 
     content_small cs2 
     on content_small.id = 8 
WHERE cs2.content = 1 

名前の競合は発生しません。

+0

彼は '同じテーブルから'が欲しい! –

+0

テーブルをエイリアシングしています。注意cs1とcs2は両方とも同じテーブルのコピーです。エイリアシングの詳細は次のとおりです:https://www.w3schools.com/sql/sql_alias.asp – Bing

関連する問題