数据库中五个表要关联起来怎么写sql语句?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中五个表要关联起来怎么写sql语句?相关的知识,希望对你有一定的参考价值。

电影表 名称编号主演导演电影编号
电影票表 电影编号 票号 厅号 价格时间
厅表 厅号
顾客表 顾客编号 姓名电话住址
订单表 订单编号 电影编号 顾客编号 价格 购买日期

好吧 我承认我比较无聊
select *
from 电影表, 电影票表, 厅表, 顾客表, 订单表
where 电影票表.厅号 = 厅表.厅号
and 电影票表.电影编号 = 电影表.电影编号
and 电影票表.电影编号 = 订单表.电影编号
and 订单表.顾客编号 = 顾客表.顾客编号
参考技术A 他们的写法有错误,应该有一个作为主表,只有分块做两次关联,不然会得不到你想要的结果
SELECT A.*,B.订单编号,B.顾客编号,B.价格,B.购买日期,B.姓名电话住址
FROM (SELECT A.*,B.票号 厅号 价格时间 FROM 电影表 A,电影票表 B,厅表 C
WHERE B.电影编号=A.电影编号
AND B.厅号=C.厅号)A,
(SELECT B.*,A. 姓名电话住址 FROM 顾客表 A,订单表 B
WHERE A.顾客编号=B.顾客编号) B
WHERE A.电影编号=B.电影编号
参考技术B 。。。不建议各位手把手教他, 这个问题只能代表其基础知识匮乏, 应该好好看看书, 交给他反而害了他 参考技术C 关联不用写语句,直接建立一个数据库关系图,在里面拉关系就可以了 参考技术D 建立数据库关系图,或者建立外码,如果要实现查询就直接用select语句,只要有联系任何两个表的连接属性相同就可以。

sql 语句查询判断是不是为空并关联

如图,第二列和第三列都放的是关联ID,一个有,另一个就为空,我现在要查这张产品表,查出ID,上传者,上传者就是 customer_id 和 manager_id 中存在的,并关联另外两张表,SQL语句应该怎么写。求大神指点。

用Case 语句可以将两列合有一列,然后用结果作为一个表去关联其它表就可以
Select * from

(Select Case when customer_id is null then manager_id else customer_id end as customer_id from table) as a

left join b on a.customer_id=b.customer_id ...........追问

customer_id 关联 customer表,manager_id关联 manager表。。。还是有点不能明白,可以再详细点吗,麻烦了。

追答

你两个字段关联不同的表,那你就不能这样做了,你可以单独查出两个结果再用union把查询结果连到一起,,不过要注意表结果是否一样,不一样就要控制输出字段

select * from table_a as a left join customer as b on a.customer_id=b.customer_id where a.customer_id is not null
union
select * from table_a as a left join manager as b on a.manager_id=b.manager_id where a.manager_id is not null

追问

谢谢,可以了

参考技术A 在楼上的基础上是不是还可以再简单一些
select *
from table_a as a
left join customer b
on a.customer_id = b.customer_id
left join manager c
on a.manager_id = c.manager_id
where a.customer_id is not null
or a.manager_id is not null

以上是关于数据库中五个表要关联起来怎么写sql语句?的主要内容,如果未能解决你的问题,请参考以下文章

sql中外键怎么写?

MySQL中如何在关联表中查询出其中一个外键不存在的数据?

Phalcon 两个表关联查询怎么搞

NNER JOIN连接两个表三个表五个表的SQL语句

SQL SERVER,一张表中,有多个字段关联另一张表,怎么写SQL语句?

两表关联查询SQL语句的,要怎么写?