Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 编写音乐数据库的SQL查询_Mysql_Sql_Database_Schema_Relational Database - Fatal编程技术网

Mysql 编写音乐数据库的SQL查询

Mysql 编写音乐数据库的SQL查询,mysql,sql,database,schema,relational-database,Mysql,Sql,Database,Schema,Relational Database,我不太擅长SQL,我不知道我是否正确地编写了这些查询。每个问题下面都提供了我对每个问题的答案。非常感谢任何提示/更正 对于这两个问题,我不知道我是否用嵌套的SELECT正确地编写了WHERE子句 查找类型为audio MediaType.name等于audio的所有曲目,这些曲目的长度大于具有相同类型的所有其他曲目的平均长度 我的答覆是: SELECT * FROM Track INNER JOIN MediaType ON Track.MediaTypeId = MediaType.Med

我不太擅长SQL,我不知道我是否正确地编写了这些查询。每个问题下面都提供了我对每个问题的答案。非常感谢任何提示/更正

对于这两个问题,我不知道我是否用嵌套的SELECT正确地编写了WHERE子句

查找类型为audio MediaType.name等于audio的所有曲目,这些曲目的长度大于具有相同类型的所有其他曲目的平均长度 我的答覆是:

SELECT *

FROM Track INNER JOIN MediaType

ON Track.MediaTypeId = MediaType.MediaTypeId

WHERE Track.Milliseconds > (SELECT AVG(Milliseconds) FROM Track)

AND MediaType.name = 'audio'
SELECT FirstName, LastName

FROM Customer INNER JOIN Invoice

ON Customer.CustomerId = Invoice.CustomerId

WHERE Customer.Country = 'US' AND Customer.Company = null AND Invoice.Total = (SELECT MAX(total) FROM Invoice)
查找不属于某家公司且在所有美国客户中支付费用最多的客户的姓名 我的答覆是:

SELECT *

FROM Track INNER JOIN MediaType

ON Track.MediaTypeId = MediaType.MediaTypeId

WHERE Track.Milliseconds > (SELECT AVG(Milliseconds) FROM Track)

AND MediaType.name = 'audio'
SELECT FirstName, LastName

FROM Customer INNER JOIN Invoice

ON Customer.CustomerId = Invoice.CustomerId

WHERE Customer.Country = 'US' AND Customer.Company = null AND Invoice.Total = (SELECT MAX(total) FROM Invoice)

如果不属于公司的客户在customer.company列中有customer null,我建议您在第二个查询中使用is null而不是=null

查看此线程:

你的第一个答复提到: …其长度大于相同类型的所有其他轨道的平均长度

因此,where条件下的子查询应为“Audio Type”的avgmillseconds

SELECT *

FROM Track INNER JOIN MediaType

ON Track.MediaTypeId = MediaType.MediaTypeId

WHERE Track.Milliseconds > (SELECT AVG(Milliseconds) FROM Track INNER JOIN MediaType

ON Track.MediaTypeId = MediaType.MediaTypeId WHERE MediaType = 'audio')

AND MediaType.name = 'audio'
Customer.Company=null始终返回FALSE。您必须将其更改为客户。公司为空
谢谢你的建议。关于我的代码对问题和模式的正确性,您认为我的答案是否满足问题要求?是的,否则这个解决方案看起来是正确的。请向上投票。如果你的代码执行你想要的,这个问题在这里是离题的,应该继续提问。如果它没有执行您希望它执行的操作,那么您必须指定预期结果和实际结果之间的差异,以及代码可能输出的任何错误。