私が設定したテーブル構造と実行しているクエリのリンクを以下に示します。3-4テーブルから選択するSQLクエリ
本結果は、firstnames、lastnames及び "education_finished" が表示されていることです。しかし、option_idとそれに関連するlang_valuesはすべて「NULL」と表示されます。
望ましい結果:
解決するためにどのように任意の提案ですか?以下は
私が設定したテーブル構造と実行しているクエリのリンクを以下に示します。3-4テーブルから選択するSQLクエリ
本結果は、firstnames、lastnames及び "education_finished" が表示されていることです。しかし、option_idとそれに関連するlang_valuesはすべて「NULL」と表示されます。
望ましい結果:
解決するためにどのように任意の提案ですか?以下は
は、使用しているクエリです:
SELECT d.pf_firstname, d.pf_lastname, f.field_id, fl.option_id,
d.pf_education_finished, fl.lang_value
FROM phpbb_profile_fields_data d
LEFT JOIN phpbb_profile_fields f
ON d.pf_education_finished = f.field_name
LEFT JOIN phpbb_profile_fields_lang fl
ON f.field_id = fl.field_id
ORDER BY d.pf_lastname ASC
あなたがnull
値を取得している理由は、このための条件は次のとおりです。
LEFT JOIN phpbb_profile_fields f
ON d.pf_education_finished = f.field_name
あなたはpf_education_finishedにjoin
しようとしている(int
)フィールドと別のテーブルのfield_name(int
)フィールドを使用します。また、一致する値もありません(例:pf_education_finished
は数字を含み、field_name
は「教育終了」です)。
クエリが何かを返したい場合、あなたは例えば、フィールドIDを照合して、いくつかのレコードを持っているfield_id
とphpbb_profile_fields
ニーズにjoin
に必要:
SELECT d.pf_firstname, d.pf_lastname, f.field_id, fl.option_id,
d.pf_education_finished, fl.lang_value
FROM phpbb_profile_fields_data d
LEFT JOIN phpbb_profile_fields f
ON d.pf_education_finished = f.field_id
LEFT JOIN phpbb_profile_fields_lang fl
ON f.field_id = fl.field_id
ORDER BY d.pf_lastname ASC
はここで更新SQL Fiddleです。
SELECT d.pf_firstname, d.pf_lastname, f.field_id, fl.option_id,
d.pf_education_finished, fl.lang_value
FROM phpbb_profile_fields_lang fl
inner JOIN phpbb_profile_fields f
ON f.field_id = fl.field_id
inner JOIN phpbb_profile_fields_data d
ON f.field_id = fl.field_id
ORDER BY d.pf_lastname ASC
あなたは3-4のテーブルからデータを表示したいが、このクエリで名前がphpbb_profile_fields_lang
でcount of field_id
存在につきとして繰り返している場合、これは、オプションのクエリです。
データを取得しているすべてのテーブルに同じプライマリキーがある場合は、正確な解決方法があります。
ありがとうございます。
期待どおりの結果を表示できますか? – Jens
'phpbb_profile_fields_data'と' phpbb_profile_fields_data'の間には関連するフィールドはありません – McNets
'ON d.pf_education_finished = f.field_name' – McNets