显示每个学生可以去的所有餐厅,并且至少有一个他们喜欢的甜点

问题描述 投票:-1回答:1

这是我第一次在论坛上发帖,因为我之前从未走过这条路,试图确定我究竟缺少什么。

这就是我要做的事情:写一个SQL查询来显示每个学生可以去的所有餐厅,并且至少有一个他们喜欢的甜点。即,如果餐馆有人喜欢的甜点,那么该人可以去那家餐馆。这是我到目前为止的数据库(表,字段,复合表等):

create table Student
(
    StudentID int primary key not null
    , LastName nvarchar (20) not null
    , FirstName nvarchar (20) not null
)

create table Dessert 
(
    DessertID int primary key not null
    , DessertName nvarchar (25) not null
)

create table Restaurant 
(
    RestaurantID int primary key not null
    , RestaurantName nvarchar (20) not null
    , RestaurantStreet nvarchar (20) not null
    , RestaurantCity nvarchar (20) not null
    , RestaurantState nvarchar (2) not null
    , RestaurantZipCode nvarchar (5) not null
)

create table StudentDessert 
(
    StudentID int
    , DessertID int
    , primary key (StudentID, DessertID)
    , foreign key (StudentID) references Student(StudentID)
    , foreign key (DessertID) references Dessert(DessertID)
) 

create table RestaurantDessert 
(
    RestaurantID int
    , DessertID int
    , primary key (RestaurantID,DessertID)
    , foreign key (restaurantID)references Restaurant(RestaurantID)
    , foreign key (DessertID) references Dessert(DessertID)
)

这可能是我得到的最接近但它仍然产生太多的数据:

select restaurantname, studentID, dessertid
from restaurant, studentdessert
where dessertid != 0 

你能帮忙改进这个查询吗?

sql rows
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.