我有一个包含两组 ID(dec_id 和 rec_id)的表。如果在 Table1 中找到 dec_id,我需要离开该表。如果不是 - 左连接 table2。第二列也是如此。我还需要知道在哪个表中找到了哪个 ID。
这是表1的抽象结构:
dec_id rec_id ----------------- 11 16 23 24 15 31
表 2 和表 3 的所有意图和目的均相同(实际数据除外):
id 名称 data1 data2 ------------------------------------------ 11 轴 41 byq 55 锆石
和逻辑(抽象):
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 知识让我失望了。
提前致谢!