假设您有三个名为Item,Event和Seat的表,其构造如下:
物品
Id(int)
Event_id(int)
Section(int)
事件
Id(int)
Venue_id(int)
配置(int)
座椅
Id(int)
Venue_id(int)
配置(int)
Section(int)
Face_value(int)
我正在尝试构建一个MySQL查询,该查询从Item表中提取所有条目,并包含每个项目的Face Value。为此,查询必须:
我在构建这个时遇到了很多麻烦,因为它结合了来自所有三个表的信息。有关如何接近它的任何想法?或者这在SQL中是不可能的?
答案 0 :(得分:4)
SELECT `Item`.*, `Seat`.`Face_value`
FROM `Item`
JOIN `Event` ON `Event`.`Id` = `Item`.`Event_id`
JOIN `Seat` USING (`Venue_id`, `Configuration`)
WHERE `Seat`.`Section` = `Item`.`Section`
答案 1 :(得分:1)
与chaos相同,但我更喜欢这种语法: - )
select s.Section, s.Configuration, s.Face_value
from Item i
inner join Event e
on e.id = i.Event_id
inner join Seat s
on s.Venue_id = e.Venue_id
and
s.Configuration = e.Configuration
and
s.Section = i.Section