多表查询,除了在SQL语句中级联还有没有其它方式

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:27:32
数据库菜鸟
A: B:
xh yw xh xx
1 80 1 90
2 85 3 70
3 60 4 50
SELECT a.xh, a.yw, b.xx FROM a INNER JOIN b ON a.xh =b.xh
结果为
1 80 1 90
3 60 3 70

就是达到这样类似的目的,只能通过在sql语句里用级联的方式实现么,能不能通过配置数据库实现,索引和这个功能没有关系吧?高手给些相关知识指点。答的好加分

不懂乱贴一分没有
你说的第二种方法,在创建表结构的时候不用定义外键,
而我说的这种方法,在创建表结构的时候必须定义外键,是这样么?

我给你写一个嵌套的查询!不用主外键但是要求表中的值必须是一样的!
第一种
select xh,yw,(select xx from b) from a
where (select xh from b)=(select xh from a)
第二种
select Aa.xh,Aa.yw,Bb.xx from a as Aa,b as Bb where Aa.xh=Bb.xh
这样写!就是你的两个表种根本没有主外键也可以查询!

你明明就是两个独立的表,且每一个表中的每一条记录都有存在的意义,那么你想在设计表的过程中实现这一功能,显然是不可能的。

如果你的表B中的xh字段的数据必须存在与表A中,这个功能在设计表的过程中是可以实现的,你需要设计表的关键字,并设计两表的关系。

如果你只是想用上面的SQL语句设计一个查询结果,让不懂数据库的人可以直接查出上面的结果,那么你可以设计一个视图,把上面的SQL语句写到视图中即可。当其他使用者打开该视图时,就可以直接显示上面的查询结果。