Sql 当我试图输出租了定价为2.6的电影的人的customerName和customerID时,它会输出每个人的姓名和ID
这是我为电影租赁系统创建的表。租赁id、客户id、客户名称、客户电子邮件、租赁日期、电影名称、数量、电影价格、总价是此表的实体:Sql 当我试图输出租了定价为2.6的电影的人的customerName和customerID时,它会输出每个人的姓名和ID,sql,database,sqlite,database-design,datatable,Sql,Database,Sqlite,Database Design,Datatable,这是我为电影租赁系统创建的表。租赁id、客户id、客户名称、客户电子邮件、租赁日期、电影名称、数量、电影价格、总价是此表的实体: 这条评论太长了。假设列名甚至与它们实际表示的内容有着遥远的联系,则无法用给定的数据模型回答这个问题 特别是: 客户已连接到rentalId,这将导致filmName 有价格的两个表根本没有胶片id或名称。它们只是摆在不明位置的价格 数据模型还有其他问题: 每次租赁都会单独重复客户信息。此类信息应位于单个客户表中 价格通常只在一个表中 films表通常会有一个id
这条评论太长了。假设列名甚至与它们实际表示的内容有着遥远的联系,则无法用给定的数据模型回答这个问题 特别是:
- 客户已连接到
,这将导致rentalId
filmName
- 有价格的两个表根本没有胶片id或名称。它们只是摆在不明位置的价格
- 每次租赁都会单独重复客户信息。此类信息应位于单个
客户
表中
- 价格通常只在一个表中
表通常会有一个id和一个名称films
- 事实上,每个表都应该有一个
id
我还要强调的是,您应该使用适当的、明确的、标准的、可读的
JOIN
语法。切勿在FROM
子句中使用逗号。数据库设计中似乎没有支持预期结果的关系。该设计需要重新审视,因为它不符合目前的标准,而且CustomerRentalInfo表和Film表是如何相互关联的在ANSI-92 SQL标准(大约30年前)中,旧样式的逗号分隔表列表样式被正确的ANSIJOIN
语法所取代,不鼓励使用它
SELECT customerId, customerName
FROM customerRentalinfo, film
WHERE filmPrice = 2.6;