【发布时间】:2019-01-14 02:13:01
【问题描述】:
我有 3 个表,比如说 Table1、Table2 和 Table3。我必须根据条件将 Table1 与 Table2 或 Table3 连接起来。
|------------|---------------|
| 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 并且如果我的第一个表 '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}
【问题讨论】:
-
显示您的查询,您在尝试什么?
-
我正在尝试 case when statement...但它显示错误...我使用... case when tab1.name='facebook' 然后离开 join Table2 when tab1.name='twitter ' 然后离开加入Table3
-
@SandeepNambiar 添加您当前尝试运行的查询。