嗨,大家好,我的架构是http://sqlfiddle.com/#!4/82771
CREATE TABLE t1
(
Age INT,
Name VARCHAR(20)
);
CREATE TABLE t2
(
Age INT,
Name VARCHAR(20)
);
INSERT INTO t1(Age, Name) VALUES(31, NULL);
INSERT INTO t1(Age, Name) VALUES(32, NULL);
INSERT INTO t1(Age, Name) VALUES(33, NULL);
INSERT INTO t1(Age, Name) VALUES(34, NULL);
INSERT INTO t2(Age, Name) VALUES(31, 'Panos');
我需要一个Join查询,它会给我这个结果:
Age Name
31 'Panos'
32 Null
33 Null
34 Null
我在Age上尝试了LEFT JOIN和RIGHT JOIN,但我无法得到我需要的东西。它应该很简单,但它不会来找我......
答案 0 :(得分:2)
也许你在做LEFT JOIN
时错过了什么。使用cowellce也可以返回第一个非null 值。
SELECT t1.Age, COALESCE(t2.name, t1.Name) Name
FROM t1
LEFT JOIN t2
ON t1.Age = t2.Age
答案 1 :(得分:1)
一种方法是使用union all,然后在第二个表中检查是否存在:
select *
from t1
union all
select *
from t2
where Not exists (select 1 from t1 where t1.age = t2.age)