我有3个表,比如说表1,表2和表3。我必须根据一个条件将表1与表2或表3连接起来。
|------------|---------------|
| id | Name |
|------------|---------------|
| 1 | facebook |
|------------|---------------|
| 2 | twitter |
|------------|---------------|
|------------|---------------|-------------|
| id | tab1_id | value |
|------------|---------------|-------------|
| 1 | 1 | val1 |
|------------|---------------|-------------|
| 2 | 2 | val3 |
|------------|---------------|-------------|
|------------|---------------|-------------|
| id | tab1_id | value |
|------------|---------------|-------------|
| 1 | 1 | val5 |
|------------|---------------|-------------|
| 2 | 2 | val6 |
|------------|---------------|-------------|
ddl地址:
create table tbl1 (id int, Name varchar(10));
insert into tbl1 values
(1,'facebook'),
(2,'twitter');
create table tbl2 (id int,tab1_id int, value varchar(10));
insert into tbl2 values
(1,1,'val1'),
(2,2,'val3');
create table tbl3 (id int,tab1_id int, value varchar(10));
insert into tbl3 values
(1,1 ,'val5'),
(2,2 ,'val6');
这里我需要一个连接,如果我的第一个表 'Name'
是 facebook
表1应与 Table2
如果我的第一张table Name
'是 Twitter
表1应与 Table3
我试过了
SELECT tab1.*
from Table1 as tab1
case
when tab1.name='facebook' then left join Table2 on {condition}
when tab1.name='twitter' then left join Table3 on {condition}
3条答案
按热度按时间r3i60tvu1#
尝试此查询:
deyfvvtc2#
你能试试上面的查询吗,我测试了这个查询。
这是一个演示
chhkpiq43#
尝试此查询: