誰かがこれで私に手を貸してくれるのだろうか...
1 つのテーブルにはデフォルト データが含まれ、2 つ目のテーブルには上書きデータが含まれる 2 つのテーブルをクエリする必要があります。
表1
id = 5
title = 'This is the default title'
text = 'Hi, default text here...'
表 2
id = 1
relation_id = 5
title = 'This is an override title'
text = NULL
行の完全なセットを返す必要があるため、table2 テキストが空の場合、結果セットには table1 テキストが含まれます。同様に、table2 のタイトルが空でない場合、結果のタイトルは table2 のタイトルの値になり、デフォルトの table1 のテキスト値が上書きされます。
完璧な結果セット
上記のテーブル構造から
id = 5
title = 'This is an override title'
text = 'Hi, default text here...'
標準結合を使用して両方のテーブルからすべてのデータを取得し、PHP でデータを配置しようとしましたが、可能であれば SQL で実行したいと思います。
私が実行しているクエリの大まかな例は...
SELECT vt.id,
vt.title as vt_title,
vt.text AS vt_text,
vt.relation_id,
t.id, t.title,
t.text
FROM table1 vt
LEFT JOIN table2 t ON vt.relation_id = $id
AND vt.relation_id = t.id",
私のテーブルには、同じ列名/オーバーライドデータを持つ最大 6 つの列が含まれる可能性があります。可能な限りデフォルトのフィールド名をそのままにして、戻りセットに新しい名前を割り当てないようにしたいと思います。たとえば、
悪い結果セット
id = 1
title = 'default title'
override_title = 'this is the override title'
text = 'Hi, default text here...'