【发布时间】:2013-05-18 18:24:28
【问题描述】:
我有 3 张桌子 t1、t2 和 t3。以下是他们的架构。
我需要加入他们并且有条件。
- 在 t1 表中,objectName 可以是以下 4 个之一:“ABC”、“DEF”、“GHI”或“JKL”。
- 如果 t1.objectName 是 'ABC',我需要将 t1.idObject 与 t2.id1 连接起来。
- 如果 t1.objectName 是 'DEF',我需要将 t1.idObject 与 t2.id2 连接起来。
- 如果 t1.objectName 是 'GHI',我需要将 t1.idObject 与 t2.id3 连接起来。
- 如果 t1.objectName 是 'JKL',我需要将 t1.idObject 与 t3.id4 加入。
我需要选择 t1.idObject、t1.objectName、t2.custName、t3.Message。
create table t1 (idObject int, objectName varchar(20));
create table t2 (id1 int, id2 int, id3 int, custName varchar(20));
create table t3 (id4 int, Message varchar(20));
insert into t1 values (101, 'ABC'), (102, 'DEF'), (103, 'GHI'), (104, 'JKL'), (105, 'ABC'), (106, 'DEF'), (107, 'GHI'), (108, 'JKL');
insert into t2 values (101, 102, 103, 'Val'), (105, 106, 107, 'Mil');
insert into t3 values (104, 'Message1'), (108, 'Messgage2');
select * from t1;
select * from t2;
select * from t3;
非常感谢您提供解释。
非常感谢。
【问题讨论】:
-
hm 我认为“正常”连接不会在这里执行此操作,在 t-sql 中您可以通过应用执行此操作,但 afaik mysql 不支持应用。很好奇这将如何在这里工作......
-
在JKL的情况下,如何加入t2表