我对编程很新,我可以用C ++,PHP,Java编程,但我还没有遇到过SQL查询。我目前正在攻读计算机学位。
我是自雇人士,并为公司编写了一个程序。最近,程序员再也不能照顾我的程序了,所以当我正在学习编程并有一个公平的想法时,我想我会自己接管这个项目。
程序是用C#编写的,它使用SQL来获取数据。正如我所说,我还没有在学习中遇到SQL,所以我是一个完全新手。
我试过学习SQL查询,但我无法理解它。有人可以解释一下查询的每个部分是做什么的,这样我就可以了解它并希望能够理解它。
SELECT top 3 tracks.trackid AS id,
TrackTitle,
ArtistName,
row_number() over (
ORDER BY Tracks.TrackPlayed DESC) AS rank,
categorytitle,
categorytitle AS title,
CategoryImagePath
FROM Tracks
JOIN artists ON tracks.artistid = artists.artistid
JOIN x_categories_tracks ON x_categories_tracks.trackid = tracks.trackid
JOIN Categories ON categories.categoryid = x_categories_tracks.categoryid
WHERE trackactive = 'true'
AND categories.categoryid = @optsId
ORDER BY trackplayed DESC
如果需要任何其他信息,请告诉我。
提前致谢。
答案 0 :(得分:2)
返回给定Sing / Track Active
的TOP 3最常播放曲目的歌曲/曲目信息,这些曲目处于Category
状态(作为{{1}中的参数传入} property。
从结果集中获取前3行
opts.id
从结果集中选择要进一步处理的字段
Select top 3
按照tracks.trackid as id, TrackTitle,ArtistName,...
降序排列的TrackPlayed
值对选择条件中符合条件的记录进行分组,因此最常播放的记录在结果集中排在第一位。
desc
,“
从结果集中选择一些您希望进一步处理的字段
row_number() over (order by Tracks.TrackPlayed desc) as rank
SQL连接条件以链接各种相关的表。
+"categorytitle,categorytitle as title, CategoryImagePath from Tracks "
+ "join artists on tracks.artistid = artists.artistid " +
"join x_categories_tracks on x_categories_tracks.trackid = tracks.trackid " +
"join Categories on categories.categoryid = x_categories_tracks.categoryid " +
子句。在这里,我们只选择活动的曲目,这些曲目属于WHERE
中存储的类别(作为参数传入?)
opts.id
最后,按照播放时间的降序排序返回的前3个记录(即大多数播放时间为1)。
"where trackactive = 'true' and categories.categoryid = " + opts.id + "
答案 1 :(得分:0)
在理解上面提供的SQL代码之前,您应该尝试了解每个SQL命令的用途。在阅读此SQL语句之前,您需要了解的一些主题:
SELECT, TOP, Alias Table, Ranking Functions, ORDER BY, JOINS, WHERE.
如果你学习了那些命令,我相信你会很容易理解这些代码。