社区
Web 开发
帖子详情
一个sql语句
虽不简单
2012-08-30 10:10:14
有三个以上的表,如A,B,C里面有不同的字段,但是有一个id三个表可以连接,我这样弄得
select * from A,B,C where A.d=B.id and B.id=C.id and A.id=c.id ................
这样好多重复的记录啊,该咋修改一下呢?
...全文
187
19
打赏
收藏
一个sql语句
有三个以上的表,如A,B,C里面有不同的字段,但是有一个id三个表可以连接,我这样弄得 select * from A,B,C where A.d=B.id and B.id=C.id and A.id=c.id ................ 这样好多重复的记录啊,该咋修改一下呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
跳蚤图
2012-08-31
打赏
举报
回复
LZ想要重复记录还是不想要啊
MiceRice
2012-08-31
打赏
举报
回复
倒~~~按照你15楼的需求,应该用 Union 而不是 表连接
Select id, name Form A
Union All
Select id, name Form B
Union All
Select id, name Form C
虽不简单
2012-08-31
打赏
举报
回复
[Quote=引用 13 楼 的回复:]
引用 6 楼 的回复:
唉 还是不行,是这样的里面的这个id 这三张表都有,id中各有许多数据,这些数据中三张表都有一些相同的数据,我就想把这些相同的三张表的数据去出来,不知道我说明白了没有。
这说明你本来这三张表里面,就已经有重复记录了!
连接是不能消除原来表中本来就有重复记录的情况。
比如A表中(id, 姓名):
1, 张三
1, 李四
然后B表中也有(i……
[/Quote]
是,我想要的是这样的结果。。
A
id name
1 张三
1 李四
2 甲
B
id name
1 张三b
1 李四b
2 甲乙
C
id name
1 张三c
1 李四c
2 甲乙
结果
id name
1 张三
1 李四
1 张三b
1 李四b
1 张三c
1 李四c
2 甲
2 甲乙
2 甲乙
还要后面有where 语句 能加条件.....
so?
虽不简单
2012-08-31
打赏
举报
回复
[Quote=引用 12 楼 的回复:]
select * from A a inner join B b on a.id = b.id inner join C c on b.id =c.id where a.id = c.id
[/Quote]
不对,,还有没有阿
MiceRice
2012-08-31
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
唉 还是不行,是这样的里面的这个id 这三张表都有,id中各有许多数据,这些数据中三张表都有一些相同的数据,我就想把这些相同的三张表的数据去出来,不知道我说明白了没有。
[/Quote]
这说明你本来这三张表里面,就已经有重复记录了!
连接是不能消除原来表中本来就有重复记录的情况。
比如A表中(id, 姓名):
1, 张三
1, 李四
然后B表中也有(id,地点):
1,餐厅
1,厨房
你这么一连接,必然是笛卡尔集。
Tommyzcg
2012-08-31
打赏
举报
回复
select * from A a inner join B b on a.id = b.id inner join C c on b.id =c.id where a.id = c.id
虽不简单
2012-08-31
打赏
举报
回复
都不对阿
。。。。
brightyq
2012-08-31
打赏
举报
回复
连接查询,也就像楼上们说的那样了。
如果记录不是你想要的,可能是就不应该有abc这三个表连接查询。
或者嵌套一个查询
select distinct column1,colunm2 from
(
select * from A,B,C where A.id = B.id and B.id = C.id
)
where ....
佐佑不分
2012-08-31
打赏
举报
回复
加关键字 distinct 消除重复记录
daxiang253
2012-08-31
打赏
举报
回复
select * from A a left join B b on a.id = b.id left join C c on b.id =c.id where a.id = c.id
虽不简单
2012-08-31
打赏
举报
回复
唉 还是不行,是这样的里面的这个id 这三张表都有,id中各有许多数据,这些数据中三张表都有一些相同的数据,我就想把这些相同的三张表的数据去出来,不知道我说明白了没有。
虽不简单
2012-08-31
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
select * from A a left join B b on a.id = b.id left join C c on b.id =c.id where a.id = c.id
[/Quote]
1楼貌似是对的。一会我测试一下,没问题给你分
虽不简单
2012-08-31
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
楼主你这是多此一举啊。。。
Select * From A,B,C
Where A.d=B.id and B.id=C.id
--and A.id=c.id --这句就多余的,删掉吧
不过重复记录应该跟你多余了一个连接条件无关,应该是别的问题所致,你把重复记录的情况说下吧。
[/Quote]
是一个笛卡尔积。去掉还是笛卡尔积。。。。。。。。。
虽不简单
2012-08-31
打赏
举报
回复
[Quote=引用 16 楼 的回复:]
倒~~~按照你15楼的需求,应该用 Union 而不是 表连接
Select id, name Form A
Union All
Select id, name Form B
Union All
Select id, name Form C
[/Quote]
对对,一时没想明白,其实id不是对应,只是有相同的值罢了。
16楼是对的。。
a549051437
2012-08-31
打赏
举报
回复
[Quote=引用 17 楼 的回复:]
LZ想要重复记录还是不想要啊
[/Quote]
楼主要的是竖起连接 不是横起连接
Zhang895341748
2012-08-30
打赏
举报
回复
Select * From A,B,C Where A.d=B.id and B.id=C.id
MiceRice
2012-08-30
打赏
举报
回复
楼主你这是多此一举啊。。。
Select * From A,B,C
Where A.d=B.id and B.id=C.id
--and A.id=c.id
--这句就多余的,删掉吧
不过重复记录应该跟你多余了一个连接条件无关,应该是别的问题所致,你把重复记录的情况说下吧。
CSDNdongdong
2012-08-30
打赏
举报
回复
select * from A a left join B b on a.id = b.id left join C c on b.id =c.id where a.id = c.id
SQL语句
基础教程
SQL语句
基础教程
SQL学习资料(包含所有常用的语句例子)
sql学习必备,内含sql一些常用语句的例子,有图有表,通过结果来理解
sql语句
的实现与结果。
7天带你玩转Mysql数据库之
SQL语句
您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】 七年
SQL语句
编写经验。满满的干货! 在网上找了好多SQL数据库的教程,但你还会面临这样的问题: 1. 自己写了SQL却不知道对不对。 2. 在上线后...
一条
SQL语句
在MySQL中执行过程全解析
本篇文章会分析
一个
sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。
如何在
一个
sql语句
中得到多个count函数的值
记一下在项目中出现的
一个
小问题,由于之前没用过case when函数,所以还是费了不少时间 问题: 在
一个
项目中,有个需求是需要分别统计周一到周日出现的次数,表如下: 解决方案:使用case when 函数 SELECT count...
Web 开发
81,091
社区成员
341,718
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章