SQL多表查询发生笛卡尔积的问题

qq_43320786 2019-05-15 04:15:04
selectq T.VEH_NO,
T.VEH_ID,
T.VEH_NAME,
T.VEH_COLOR,
T.VEH_IN_COMP AS COM_ID,
A.PERSON_NAME,
A.PERSON_NUMBER,
(SELECT TEXT FROM T_SYS_COM WHERE ID = T.VEH_IN_COMP) AS VEH_IN_COMP,
DECODE(T.AXLE,'axle1','一轴','axle2','二轴','axle3','三轴') "AXLE"
FROM R_VEHICLE_INFO T,R_PERSON_INFO A
WHERE(1=1)
ORDER BY T.VEH_IN_COMP
本人开发小白基础不熟练,查询出来之后数据多了两倍不止,请高手解答-------------感激不尽
...全文
1033 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_45333823 2020-04-27
  • 打赏
  • 举报
回复
你在where后面加个1=1是什么意思 这个一直是成立的啊 你查两个表 当然要找到 两个表的关联关系 用一个表的列名去等于另一个表的列名
walter5224 2020-03-27
  • 打赏
  • 举报
回复
心塞。。你这要去看一下mysql 内外连接的知识了
各自修行 2019-05-15
  • 打赏
  • 举报
回复
连表查询的话 A表的每条数据都要根据条件关联到B表形成一条结合两表数据的新的一条数据,如果没有加条件自然就是每一条关联整个表了
qq_43320786 2019-05-15
  • 打赏
  • 举报
回复
就是这两个表没有任何关联但要合成一张表查出数据这要怎么写呢
nayi_224 2019-05-15
  • 打赏
  • 举报
回复
内连接不加条件就是使用的笛卡尔积算法,会产生n*m条数据。 你把表链接条件写好。
karlpan01 2019-05-15
  • 打赏
  • 举报
回复
R_VEHICLE_INFO T,R_PERSON_INFO 这两个表没有连接条件,你要确定两表的连接条件,确定以那张表为基础。
maradona1984 2019-05-15
  • 打赏
  • 举报
回复
引用 4 楼 qq_43320786 的回复:
就是解决掉笛卡尔积正常查询出数据,这个写法让数据重复了很多,该怎么写才行

算了懒得引导你了,你这太白了,连问问题都不会...

两个表的关联条件呢?我看你这sql没有加任何条件的,虽然不知道你的表结构
R_VEHICLE_INFO 的PERSON_ID 与R_PERSON_INFO 的PERSON_ID关联(我也不知道你的字段名是啥,大概就这个意思了)
qq_43320786 2019-05-15
  • 打赏
  • 举报
回复
就是解决掉笛卡尔积正常查询出数据,这个写法让数据重复了很多,该怎么写才行
maradona1984 2019-05-15
  • 打赏
  • 举报
回复
引用 2 楼 qq_43320786 的回复:
那能帮我解决一下吗,感谢!

完全看不出来你需要解决什么问题,或者你站在回答者的角度看看你提的问题,别人是否知道你想要什么?
qq_43320786 2019-05-15
  • 打赏
  • 举报
回复
那能帮我解决一下吗,感谢!
maradona1984 2019-05-15
  • 打赏
  • 举报
回复
笛卡尔积是乘法,不是加法

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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