通常我们使用表和模式进行查询,但在我的情况下,我只能使用实体关系图来查询一张 MYSQL 格式的纸。
这些确实使事情变得复杂。我需要你的帮助,例如这个问题。
根据上面的数据,INNER JOIN
s 会写成这样:
SELECT *
FROM Wines
INNER JOIN Carry ON Wines.wine_id = Carry.wine_id
请注意,葡萄酒和龋齿之间的关系图显示了从 0 到多 (1..1 - 0..*)。另请注意,wine_id 未列在进位表列列表中,但通过关系隐含。
接下来你想知道今天的价格(提示:因为表进位表有price_start_date
,price_end_date
这意味着价格不是固定的,你需要使用这些字段):
WHERE price_start_date <= CURDATE() AND CURDATE() <= price_end_date
要获得低于 15 美元的价格:
WHERE price_start_date <= CURDATE() AND CURDATE() <= price_end_date
AND price_on_carry < 15
问题 1 查询如下所示(您需要添加相关的列名):
SELECT *
FROM Wines
INNER JOIN Carry ON Wines.wine_id = Carry.wine_id
WHERE price_start_date <= CURDATE() AND CURDATE() <= price_end_date
AND price_on_carry < 15
AND Wines.color = 'Red'
注意:英语不是我的第一语言,所以我对“他们是否来自加拿大”感到困惑,特别是如果我们需要包含有关葡萄酒是否来自加拿大的信息。我假设我们不需要包含这些信息。