多对多的关联语句如何写

sxyc24 2011-07-04 10:24:26
多对多的关联语句如何写,要求显示两个表中的列:
如table1表,table2表
create table_1{
goodsid varchar(20),
a varchar(10),
b varchar(10)
c varchar(10)

};

create table_2{

goodsid varchar(20),
a varchar(10),
f varchar(10)
g varchar(10)

};

table_1中goodsid 为"dj001" 的记录有3条,table_2 中goodsid 为"dj001"的记录有2条,现在用语句把两个表关联以后,显示所有两个表中的记录,
我关联以后,显示的记录不全,或是表中字段有的值显示为空。如表2中是2条记录,表3中有3条记录,则会有一条的列显示为空

我分不多,请大家帮忙了!
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-07-04
  • 打赏
  • 举报
回复
到底要显示成什么样子的?
挨踢直男 2011-07-04
  • 打赏
  • 举报
回复
select * from table_1 cross join table_2
chuanzhang5687 2011-07-04
  • 打赏
  • 举报
回复
create table table_1(
goodsid varchar(20),
a varchar(10),
b varchar(10),
c varchar(10)
)

create table table_2(

goodsid varchar(20),
a varchar(10),
f varchar(10),
g varchar(10)
)


insert into table_1 values('dj001','a','b','c')
insert into table_1 values('dj001','a1','b1','c1')
insert into table_1 values('dj001','a2','b2','c2')
insert into table_2 values('dj001',null,'b','c')
insert into table_2 values('dj001','a',null,'c')

select * from table_1 a left join table_2 b on a.goodsid=b.goodsid
select * from table_1 a inner join table_2 b on a.goodsid=b.goodsid
select * from table_1 a full join table_2 b on a.goodsid=b.goodsid
select * from table_1 a right join table_2 b on a.goodsid=b.goodsid
--仔细看看这几个连接结果是一样的
老潘 2011-07-04
  • 打赏
  • 举报
回复

select *
from table_1 t1 FULL OUTER JOIN
table_2 t2 ON t1.goodsid=t2.goodsid
xuam 2011-07-04
  • 打赏
  • 举报
回复
select *  from  table_1
union
select * from table_2



2.
select * from table_1 a full join table_2 b on a.goodsid =b.goodsid

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧