TableA
name age
AAA 18
BBB 20
CCC 25TableB
name sex
AAA 男
BBB 女执行 select TableA.name,TableA,age,TableB.sex from TableA,TableB where TableB.name=TableA.name
得到是 :
TABLE
name age sex
AAA 18 男
BBB 20 女
CCC不见了!
有没办法显示这样:
name age sex
AAA 18 男
BBB 20 女
CCC 25 求这个SQL
name age
AAA 18
BBB 20
CCC 25TableB
name sex
AAA 男
BBB 女执行 select TableA.name,TableA,age,TableB.sex from TableA,TableB where TableB.name=TableA.name
得到是 :
TABLE
name age sex
AAA 18 男
BBB 20 女
CCC不见了!
有没办法显示这样:
name age sex
AAA 18 男
BBB 20 女
CCC 25 求这个SQL
from TableA
left join TableB on TableB.name =TableA.name
from TableA a left join TableB b where a.name=b.name
from TableA left join TableB on TableB.name=TableA.name 像你这样的就等于是 inner join
DECLARE @TableA TABLE(name VARCHAR(3), age INT)
INSERT @TableA
SELECT 'AAA', 18 UNION ALL
SELECT 'BBB', 20 UNION ALL
SELECT 'CCC', 25DECLARE @TableB TABLE(name VARCHAR(3), sex NVARCHAR(1))
INSERT @TableB
SELECT 'AAA', N'男' UNION ALL
SELECT 'BBB', N'女'SELECT A.NAME,AGE,SEX
FROM @TableA AS A LEFT JOIN @TableB AS B ON A.NAME=B.NAME
/*
NAME AGE SEX
---- ----------- ----
AAA 18 男
BBB 20 女
CCC 25 NULL
*/
from TableA left outer join TableB
on TableB.name=TableA.name
左联接
declare @tb table(name nvarchar(10),sex int)
insert @ta select 'aaa',18
union all select 'bbb',32
union all select 'ccc',22
insert @tb select 'aaa',1
union all select 'bbb',2
select a.*,b.sex from @ta a left join @tb b on a.name=b.namename age sex
---------- ----------- -----------
aaa 18 1
bbb 32 2
ccc 22 NULL