sql怎么两个表关联
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql怎么两个表关联相关的知识,希望对你有一定的参考价值。
现在有A,B两张表,A(a,b,c,d) B(c,e,f),其中,A里会有字段c的多条记录,B里只有c的单条记录
SELECT a ,SUM(b) c,d
FROM A WHERE a IS NOT NULL
另外,通过字段c,可以关联另一个表B
select c,e,f from B
现在要出一个报表,列出 a,sum(b),c,d,e,f
这样就可以了追问
我的where a is not null写哪里
追答在 后面直接加上 where a is not null 就OK了
追问具体加到哪里?on 那句后面吗 报错啊
追答select a,sum(b),A.c,d,e,f from A left join B on A.c=B.c where a is not null
追问SELECT A.a,sum(A.b),A.c,B.d,B.e,A.f
FROM A LEFT JOIN B
ON A.c=B.c where a.a is not null
group by sum(A.b)
ORDER BY b DESC
分组合计不会 谢谢最后一问
具体一点吧~没太明白~按那个分组对哪个求和啊~
追问按图里第三列比如是A.c字段 求和
FROM A, B
WHERE a IS NOT NULL
SQL 如何把两个表相关联的数据一同删除
a为主表,b为子表 子表与主表的ID关联
删除了主表的数据,子表的数据没有删除
如何把两个表相关联的数据一同删除
CREATE PROCEDURE [存储过程]
(
@Id VARCHAR(50)
)
AS
DELETE [子表] WHERE [关联Id] = @Id
DELETE [主表] WHERE [Id] = @Id
GO
执行方法:EXECUTE [存储过程] @Id追问
存储过程是无效的
追答怎么会呢?具体信息如何?我刚测试过了,是可以的,其中A表为主表,B表为子表,B表中的A_Id对应A表中的ID,代码如下:
CREATE PROCEDURE [Test_Pro] (@Id VARCHAR(50))
AS
DELETE [A] WHERE [Id] = @Id
DELETE [B] WHERE [A_Id] = @Id
GO
例如要删除A表B表中Id为100000的记录,执行:EXECUTE [Test_Pro] '100000'
delete from 子表 where 子表.id not in (select id from 主表); 参考技术D delete from b where id in
(select id from a where id in (*,*,*))
delect from a where id in (*,*,*)
ID必需相同
以上是关于sql怎么两个表关联的主要内容,如果未能解决你的问题,请参考以下文章