ID の 2 つのセット (dec_id と rec_id) を持つテーブルがあります。dec_id が Table1 にある場合は、そのテーブルに参加する必要があります。そうでない場合は、テーブル 2 に参加します。2列目も同様です。また、どの ID がどのテーブルで見つかったかを知る必要もあります。
表 1 の抽象的な構造は次のとおりです。
dec_id rec_id ----------------- 11 16 23 24 15 31
表 2 と 3 は、すべての意図と目的が同じです (実際のデータは別として)。
id 名前 データ1 データ2 ---------------------------------------------- 11 axp 41バイト 55czr
そしてロジック(要約):
IF (dec_id IS IN Table1) {
LEFT JOIN Table1 on (dec_id = table1.id);
LEFT JOIN Table2 on (rec_id = table2.id);
FLAG = 1;
} ELSE {
LEFT JOIN Table1 on (rec_id = table1.id);
LEFT JOIN Table2 on (dec_id = table2.id);
FLAG = 0;
}
LEFT JOIN Table3, Table4, ...
PHP で複数のクエリを使用して結果を達成できることはわかっていますが、効率のために可能であれば回避したいと考えています。残念ながら、私の SQL の知識は役に立ちません。
前もって感謝します!