Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取已预订节目的节目类型列表_Mysql_Sql - Fatal编程技术网

Mysql 获取已预订节目的节目类型列表

Mysql 获取已预订节目的节目类型列表,mysql,sql,Mysql,Sql,我继承了下面的db和下面的查询,这些查询提取那些程序有订阅者的程序名 SELECT DISTINCT label FROM program WHERE EXISTS ( SELECT occurrence.uuid FROM booking INNER JOIN enrolment on enrolment.booking = booking.uuid INNER JOIN occurrence on occurren

我继承了下面的db和下面的查询,这些查询提取那些程序有订阅者的程序名

SELECT DISTINCT label 
FROM program 
  WHERE EXISTS (
        SELECT occurrence.uuid
        FROM    booking
        INNER JOIN enrolment on enrolment.booking = booking.uuid
        INNER JOIN occurrence on occurrence.id = enrolment.occurrence 
        AND occurrence.programme = programme.uuid
        AND booking.status IN ('completed','booked')
      )
以下是简化的相关表格

每个程序都有一个程序类型。我需要修改上面的查询,以便从ProgramType而不是Program中获取所有预定程序的标签

**Program**

ID    UUID                                 Label     ProgramType  
---------------------------------------------------------------------------------
12    04FE546E-DD70-AAA3-2DB0DB3246790967  Prog1    8BA7E719-19B9-EFA7-D6937B42D3A4A056
32    04FE54FD-E8C5-9B02-2A08BBC22E630F09  Prog2    6EA6CB18-0E3F-360F-8BA8468E406C1EAB

**ProgramType**

ID                                   Label        
------------------------------------------
8BA7E719-19B9-EFA7-D6937B42D3A4A056  Type1  
6EA6CB18-0E3F-360F-8BA8468E406C1EAB  Type2  

**Booking**

UUID                                 Label           Occurrence  Status
------------------------------------------------------------------------
102B22F0-19B9-EFA7-D66E9E6746B5CC64  Booking1        73          Completed
C8930CB4-19B9-EFA7-D6A15045AFF02FA4  Booking2        15          Booked

**Occurrence**
(One program can have different dates etc)

ID    UUID                                 Program                              StartDate
-------------------------------------------------------------------------------------------
73    102B22F0-19B9-EFA7-D66E9E6746B5CC64  8BA7E719-19B9-EFA7-D6937B42D3A4A056  2010-11-05
15    C8930CB4-19B9-EFA7-D6A15045AFF02FA4  8BA7E719-19B9-EFA7-D6937B42D3A4A056  2010-11-12

**Enrolment**
(Fully enrolled once paid)

ID    UUID                                 Program                              PaymentID
-------------------------------------------------------------------------------------------
73    31D5680F-00EF-349C-E00F8A425EF531E3  31E84300-D8EB-4E9C-9CD8F87B47CABD84  100027
15    31E8543A-A810-DB22-C5EE25B8FF8BE3CA  31F2F89C-A88B-3B2C-53995F03C8276C5A  100029

您可以通过向查询中添加联接来执行此操作:

SELECT DISTINCT ProgramType.label
FROM program join
     programType
     on program.ProgramType = ProgramType.Id
WHERE EXISTS (SELECT occurrence.uuid
              FROM booking INNER JOIN
                   enrolment
                   on enrolment.booking = booking.uuid  INNER JOIN
                   occurrence
                   on occurrence.id = enrolment.occurrence AND
                      occurrence.programme = programme.uuid AND
                      booking.status IN ('completed','booked')
             )