我有三个表:
t1(ID int, STR1 varchar(20), STR2 varchar(30)),
t2(STR1ID varchar(20), STR3 varchar(30)),
t3(STR1ID varchar(20), STR3 varchar(30)).
我如何编写一个将返回表(ID int, STR3 varchar(30))
的请求,其中将对t1
中的每个字符串写入STR3
中的字符串t2
,其中{{ 1}}。如果STR1ID == STR1
中没有这样的字符串,请求应该尝试在t2
中找到这样的字符串,并且如果t3
中没有这样的字符串,请不要在输出中添加该字符串。
答案 0 :(得分:0)
您需要将t1
左连接到其他2个表:
select
t1.id,
coalesce(t2.str3, t3.str3) str3
from t1
left join t2 on t2.str1id = t1.str1
left join t3 on t3.str1id = t1.str1