急问:SQL如何实现两个表的笛卡儿乘积(有公共字段)?
急问:SQL如何实现两个表的笛卡儿乘积(有公共字段)?
楼主differ1(我来自未来)2003-06-30 22:56:11 在 VB / 数据库(包含打印,安装,报表) 提问 比如说A表和B表。
A表和B表有相同的字段也有不同的字段。
想把A表和B表的记录合到一起,但如果有相同字段的则合并到一条记录。
比如A:
c1 a1 a2 c2 a3
1 2 1 4 5
2 2 2 4 5
3 2 3 4 5
B表:
c1 b1 b2 c2 b3
1 2 1 4 5
2 2 2 4 5
4 2 3 4 5
想得到最终表如下:
c1 a1 a2 c2 a3 b1 b2 b3
1 2 1 4 5 1 1 5
2 2 2 4 5 2 2 5
3 2 3 4 5
4 2 3 4 5 2 3 5
问题点数:0、回复次数:4Top
1 楼differ1(我来自未来)回复于 2003-06-30 23:05:49 得分 0
错了
想得到最终表如下:
c1 a1 a2 c2 a3 b1 b2 b3
1 2 1 4 5 1 1 5
2 2 2 4 5 2 2 5
3 2 3 4 5
4 4 2 3 5Top
2 楼hiker_lx()回复于 2003-07-01 09:05:28 得分 0
1.原理:SQL-92 FULL OUTER JOIN 运算符指明,不管表中是否有匹配的数据,结果将包括两个表中的所有行。
2.本题答案:
select * from a FULL OUTER JOIN b ON a.c1=b.c1 and a.c2=b.c2
Top
3 楼differ1(我来自未来)回复于 2003-07-02 08:57:47 得分 0
那对公用字段加条件不知道是不是好用?
比如要求 a.c1=2
能筛选出所要的记录吗?
我这里暂时还没有可测试的环境,ORACLE还没安装:(
谢谢!Top
4 楼hiker_lx()回复于 2003-07-02 11:08:36 得分 0
公用字段的条件可以使用Where、Having 子句。
WHERE 和 HAVING 子句包含搜索条件,以进一步筛选联接条件所选的行。Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
