构建MySQL查询背后的逻辑

构建MySQL查询背后的逻辑,mysql,Mysql,这个问题出现在我今天的测试中,我们仍然没有答案,我在回答这个问题时感到困惑,我应该如何处理这个问题并从头开始构建答案 在第一个问题中,我尝试了多次联接(记不起我回答的具体方式) 手头的问题是: 假设数据库中有以下模式: cinema(cinema_id,name,city) hall(cinema_id,hall_num,seats) film(film_id,film_name,director,type,length) film_hall(cinema_id,hall_num,film_id

这个问题出现在我今天的测试中,我们仍然没有答案,我在回答这个问题时感到困惑,我应该如何处理这个问题并从头开始构建答案

在第一个问题中,我尝试了多次联接(记不起我回答的具体方式)

手头的问题是:

假设数据库中有以下模式:

cinema(cinema_id,name,city)
hall(cinema_id,hall_num,seats)
film(film_id,film_name,director,type,length)
film_hall(cinema_id,hall_num,film_id,date_hour)
  • 编写一个查询,输出电影院的名称和名称,以及每个电影院显示的喜剧类型的电影数量

  • 写一个查询,计算有多少电影在有4个以上放映厅的电影院中放映(我不理解这个问题,我试图显示id大于4的任何电影院)

  • 编辑: 对于1,我想我尝试了以下方法:

    选择名称,计数()
    从(电影院作为c加入电影厅作为c.cinema\u id=fh.cinema\u id)作为cfh
    在cfh上以f的身份连接胶片。胶片id=f。胶片id
    其中f.type=‘喜剧’
    按f类型分组
    
    我不记得确切的问题,但我认为这显示了我尝试的方向。

    电影院(电影院id,名称,城市)大厅(电影院id,大厅编号,座位)电影(电影id,电影名称,导演,类型,长度)电影大厅(电影院id,大厅编号,电影id,日期,时间)

  • 编写一个查询,输出电影院的名称和名称,以及每个电影院显示的喜剧类型的电影数量
  • 选择名称,count()(电影院作为c加入电影厅作为c.cinema上的fh加入电影厅作为c.cinema上的fh.cinema\u id=fh.cinema\u id)作为cfh加入电影作为f在cfh.film\u id=f.film\u id,其中f.type=按f.type分组的“喜剧”

  • 写一个查询,计算有多少电影在有4个以上放映厅的电影院中放映(我不理解这个问题,我试图显示id大于4的任何电影院)
  • select film\u id,count()
    from(电影院作为c加入电影厅作为c.cinema\u id=fh.cinema\u id)作为cfh加入电影厅作为f在cfh.film\u id=f.film\u id,其中c.hall\u num>4按flim\u id分组
    

    您可以包含您已经尝试过的SQL代码吗?堆栈溢出试图不成为免费的代码编写服务。@TimBiegeleisen正如我所说,这些都是在考试中,我会尽力记住我写的答案。这是对sql的介绍。你是如何构建第二个查询的?COUNT函数不带表达式参数吗?