sql-关于SQL多表关联的问题

问题描述

关于SQL多表关联的问题

我想知道多表关联在什么情况下会出现取出的行变多的情况?
就是在多表关联之后,什么情况下select出来的结果会比你本来希望查询到的结果多?
谢谢。

解决方案

SQL多表关联求和问题

解决方案二:

那要看你的查询条件是不是超过了你的期望,同时用内连接,而不是left join等

解决方案三:

关于你想知道的情况,你可以查询一下 “笛卡尔乘积”。笛卡尔乘积就会导致取出的数据比我们需要的数据多的问题。

我们在表查询的时候,要注意避免出现笛卡尔乘积。

使用交叉连接会产生笛卡尔乘积 select * from A cross join B或不使用任何连接条件,也可产生笛卡尔乘积 select * from A,B

时间: 2024-10-05 04:36:32

sql-关于SQL多表关联的问题的相关文章

Oracle\MS SQL Server Update多表关联更新

原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.我们先来讨论根据其他表数据更新你要更新的表   一.MS    SQL    Server   多表关联更新      sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来.虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就

【SQL】在SQL Server中多表关联查询问题

好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据   失败的案例如下: SELECT cyb.id,ad.name FROM [GeneShop].[dbo].[t_member_cyb] cyb ,[GeneShop].[dbo].xx_admin ad,[GeneShop].[dbo].t_bg bg where cyb.hzjg_id = ad.id and cyb.id = bg.cyb_id and (cyb.cyb

SQL update 多表关联更新的实现代码

实现多表更新,尤其是A表和A的子表B表数据更新,下面是例子 有A.B张表,其记录如下: A表 c1       c2 -------------- 1       a1 2       a2 3       a3 8       a8 B表 c1       c3 -------------- 1        b1 2        b1 3        b3 10      b10 A.c1与B.c1相等,用一条sql语句,实现A.c2的值更新为B.c3 -----------------

sql 统计 重复-请问使用子表和父表关联,sum统计时如何不让父表字段重复统计

问题描述 请问使用子表和父表关联,sum统计时如何不让父表字段重复统计 select sum(parent.value) --统计时重复了 ,sum(child.value) ... from parent left join child house on child.parent_id = parent.id where .... 这里sum(parent.value)统计重复了 解决方案 加上distinct select sum(distinct parent.value) 解决方案二:

sql 数据库 如何使用update set 解决多表关联修改数据

问题描述 sql 数据库 如何使用update set 解决多表关联修改数据 A表: stuid testid 1 2 3 4 5 1 1 2 1 3 1 1 2 2 2 3 2 B表: stuid testid 1 2 3 4 5 1 1 A B C D A 2 1 B B C A A 3 1 C D A A B 1 2 C C D D D 2 2 B A C A A 3 2 D A D C D C表: testid stid daan fs 1 1 A 3 1 2 B 3 1 3 C 3 1

mybatis-MyBatis如何执行动态多表关联的sql

问题描述 MyBatis如何执行动态多表关联的sql Mybatis实现动态sql的查询,这个sql不固定,可能会查多个表的多个字段.如何设计一个通用的方式,可以查询任意sql?目前我实现可以查询的,也是基于一个实体来查询,而查询的内容,与这个实体无任何关系,这样虽然也能够查,但是个人觉得不够专业.希望得到大家的解答. 谢谢 解决方案 http://haohaoxuexi.iteye.com/blog/1338557 解决方案二: <?xml version="1.0" enco

MySQL千万级多表关联SQL语句调优

本文不涉及复杂的底层数据结构,通过explain解释SQL,并根据可能出现的情况,来做具体的优化,使千万级表关联查询第一页结果能在2秒内完成(真实业务告警系统优化结果).   需要优化的查询:使用explain      出现了Using temporary:      有分页时出现了Using filesort则表示使用不了索引,需要根据下面的技巧来调整语句      rows过多,或者几乎是全表的记录数:      key 是 (NULL):      possible_keys 出现过多(

sql-oracle 实现多表关联SQL脚本

问题描述 oracle 实现多表关联SQL脚本 A表: XH IDA NAME AGE 1 1 张三 20 2 2 李四 18 3 3 王五 19 4 4 lily 19 B表 XH IDB IDA 1 1 1 2 2 1 3 3 1 4 4 3 5 5 3 6 6 4 7 7 4 C表 XH IDC IDB 1 1 1 2 1 2 3 1 3 4 2 6 5 2 7 A表的IDA与B表的IDA有关系,B表的IDB与C表的IDB有关系 实现效果: XH IDA NAME AGE IDB IDC

oracle语句-有关两张表关联查询的sql问题

问题描述 有关两张表关联查询的sql问题 各位大神,一个sql问题请教下 有两张表,分别如下: 充值表t_recharge字段: userId.recharge_money.recharge_count 消费表t_consume字段: userId.consume_money.consume_count 现在的情况是用户可能只存在充值记录或者只存在消费记录,只存在充值记录时,消费记录显示0,只存在消费记录时,充值记录显示0 现在想查出这种结果: userId recharge_money rec