-table : events
[id=>1 , data_id =>1 , events_reference =>5 , g_id=>0
id=>5 , data_id=>1 , events_reference =>NULL , g_id=>1,
id=>6 . , data_id=>3, events_reference => 5 ,g_id=>0 ]
- table : data
[id=> 0 , name=>test1,
id=>1 , name=>test2,
id=>3 , name=>tes3 ]
私はg_id_1等しいが、データテーブルに(ないDATA_ID列)をdata.idする場合は、データ名を含む列名g_id_1を取得したい、とも私はそのショーg_id_2列名を取得したいです(すべてのイベントを取得し、:イベントに基づいてデータ名も私のSQLで複雑なクエリ
を参照して、私はevent.id = 6が
期待される結果を表示されませんので、唯一例えばdata.id = 1というデータを持って欲しいです+新しい列は「g_id_1」+「g_id_2」)
{
"id"=>1,
events_reference => 5,
"g_id_1" = > "test 1"
"g_id_2" => "test 2"
},
{
"id"=>5,
events_reference => NULL,
"g_id_1" = > "test 2"
"g_id_2" => NULL
}
どのように私はevents_referenceが別の行への参照であるので、私は、サブ選択してみましたが、私は最初のレベルではなく、第二のレベルを取得するために管理し、それを行うことができ、同じテーブルで
select id,events_reference , (SELECT name from data as d where events.events_reference = d.id) as g_id_1,
(SELECT name from data as d,events as e where e.events_reference = d.id) as g_id_1
あなたのクエリで 'data'テーブルで彼の質問ではなく、3 – Barmar
で唯一の2つのテーブルがありますか? – Barmar
彼はg_id_2からg_id_1への参照を行うために同じテーブルに2回参加する必要があります。 3つのテーブルはありませんが、3つの結合があります。 – Caz1224