‘壹’ 求助 sql一对多,多表关联查询
你好!
你这个发货单表和出库主表的关联之后就出问题了!
并不是一一对应的关系!
这个可能是表设计的时候就有问题!或者说,发货单表的单号是不是也要跟出库主表的单号有关联!
但是你的数据是错的,导致不能直接关联!
欢迎追问!
请您采纳!
‘贰’ mysql 一对多的多表联查问题
sql查询出来的不会默认显示null的,这个要程序来
"select * from a,b where a.id=b.id and group by pid";
不知道这个是不是你要的
‘叁’ 求解,两张表连接,是一对多的数据显示,要怎么写Sql语句
最好把表结构提供一下。
1、以“表名一”为基准,将“表名多”中“字段”相同的行查出,“表名一”中有而“表名多”中不存在的就不显示:
select 要查询的字段 from 表名一,表名二 where 表名一.字段=表名多.字段
2、以“表名一”为基准,将“表名多”中“字段”相同的行查出,“表名一”中有的就都显示,“表名多”中没有的会显示为“NULL”
select 要查询的字段 from 表名一
left outer join 表名多 on ( 表名一.字段=表名多.字段)
‘肆’ SQL 一对多表关联查询
补充:
....这个,感觉楼主的语句不用写成这样诡异的,你可以试试下面的语句符不符合你的要求
select * from table1 a,table 2 b where a.name=b.name;
这样不就行了么??
可以给多一点信息么??具体你想返回什么呢??
是这样么?
table1符合的记录字段 table1所对应的很多table2
的中的一个记录 字段
** ++++++
** ++++++
** ++++++
** ++++++
如果是这样的话,table2应该是存储有关交易的信息的吧,那么应该有一个唯一标识的编号,类型为数值,越新的记录,编号越大,设这个编号为id 那么可以用以下方法,达到你想要的效果
select * from table1,table2 where table2.id in (
select max(id) from table2 group by name) and table1.name
=table2.name;
强烈建议不要使用日期字段作唯一标识,如果没有以上所说的id列,会麻烦许多
‘伍’ 一对多sql联合查询:
select t1.id,t1.name,min(t2.type) from t1 left join t2 on t1.id=t2.pid group by t1.id,t1.name
不知道你要取的单条是靠哪个条件选择的,暂时取最小
‘陆’ 一对多三表关联汇总SQL问题
可以把b表和c表先去重
select
a.id,
a.name,
sum(b.value) value,
sum(c.value) value2
from A a
left join (select id,value from B group by id,value) b on a.id=b.aid
left join (select id,value from C group by id,value) c on a.id=c.aid
group by a.id,a.name
‘柒’ 数据库一对多、连接表问题
楼主这种,是多对多的关系,我一般是这么处理的。
学生表 (一个主键 学生ID)
课程表 (一个主键 课程ID)
学生选课表
主键为2个字段 学生ID、课程ID
同时建立外键约束
学生选课表中的 学生ID,必须在学生表中存在。
学生选课表中的 课程ID、必须在课程表中存在。
因为 一个学生,选一门课程,是唯一的了。 可以作为主键了。
没有必要再去折腾一个 “选课ID” 作为主键。 然后再给 学生ID 与 课程ID 创建个唯一性的索引。
--
除非是这种情况:
这个 中间的 选课表, 还包含 时间信息的字段.
例如 学生 张三
2010年 选修 Oracle 数据库课程
2011年,又选修 Oracle 数据库课程
2012年,还选修 Oracle 数据库课程
那么,这种情况下, 可以设置 一个由数据库管理的 自增的 "选课ID" 来确保唯一性。
‘捌’ sql server中视图left join 一对多,右表怎么取数据之和
直接在SQL中是没法这么个结构出来的,需要配合编程语言实现
1、先查询出用户列表,然后循环用户列表,再根据用户跟作品表的关联查询到每个用户的作品信息
2、分别查询出用户表和作品表中的所有数据,再根据用户和作品的关联字段进行数据的组合
‘玖’ sql如何一对多联合查询
sql 语句是这样写:
sql="select time,content,b.classname from record a left join class b on a.class_id=b.id"
下面是在ASP页面用来显示的:(创建那个与数据连接的对象不用写了吧)
<TABLE>
<%
set rs=conn.execute(sql) 执行上面的语句
do while not rs.eof
%>
<TR>
<TD><%=rs("time")%></TD>
<TD><%=rs("content")%></TD>
<TD><%=rs("classname ")%></TD>
</TR>
<%
rs.movenext
loop
%>
</TABLE>
如果你是oracle中:
select 人名,sum(sale) from (select a.id,a.sale,b.人名 from s a,p b where a.who=b.id(+)) group by 人名
在sql 和access:
select 人名,sum(sale) from (select a.id,a.sale,b.人名 from s a left join p b on a.who=b.id(+)) group by 人名
其中 a,b 是表s,表p的别名
‘拾’ sql中表连接中的列 一对多(有相同主键)怎么连接
select x.a,min(y.b) b from x inner join y on x.a=y.a group by x.a
select y.a,min(y.b) b from y group by y.a