私はMySQLの新機能です。私は正しいことを確信していません。助けが必要。テーブルを動的に結合するMySQL
id, source_type, source_id, survey_date_time
:
は、私はテーブルの次の列を持つsurvey
を持っています。
他の二つの表は以下のとおりです。id, col1, col2, col3
列が
education
。
games
id, col4, col5, col6
カラムを有する。 survey
テーブルで
データ:
id source_type source_id survey_date_time
--------------------------------------------------------
100 education 1 2013-07-25 00:00:00
101 games 1 2013-07-25 00:00:00
102 games 2 2013-07-26 00:00:00
103 education 2 2013-07-26 00:00:00
データeducation
テーブル内games
テーブルで
id col1 col2 col3
--------------------------------------------
1 col1_data1 col2_data1 col3_data1
2 col1_data2 col2_data2 col3_data2
データ
id col4 col5 col6
--------------------------------------------
1 col4_data1 col5_data1 col6_data1
2 col4_data2 col5_data2 col6_data2
私はデータDYを読みたいですnamicallyのように:
select * from survey left join {survey.sorce_type} on {survey.sorce_type}.id=survey.source_id where survey.id={given_id}
あなたは、スキーマに事前にhere
感謝を見つけることができます。
UPDATE:
SELECT *
FROM survey s
LEFT JOIN eduction e ON s.source_type = 'education' AND e.id = s.source_id
LEFT JOIN games g ON s.source_type = 'games' AND g.id = s.source_id
SQLフィドルはhereです: select文は、これはあなたが探しているものを達成する必要がありsurvey.*, {survey.sorce_type}.*
代わりの*
おかげ
技術的には、動的SQLを使用する必要があります。つまり、MySQLのPrepared Statement構文 – Jivan