Learning Mysql


-> USING (artist_id, album_id)



Download 4.24 Mb.
View original pdf
Page145/366
Date04.08.2023
Size4.24 Mb.
#61806
1   ...   141   142   143   144   145   146   147   148   ...   366
Learning MySQL
-> USING (artist_id, album_id)
-> ORDER BY album_name, track_id LIMIT 15;
+----------------------+-----------------------+
| album_name | track_name |
+----------------------+-----------------------+
| Brotherhood | State of the Nation |
| Brotherhood | Every Little Counts |
| Brotherhood | Angel Dust |
160 | Chapter 5:
Basic SQL


| Brotherhood | All Day Long |
| Brotherhood | Bizarre Love Triangle |
| Brotherhood | Way of Life |
| Brotherhood | Broken Promise |
| Brotherhood | As It Is When It Was |
| Brotherhood | Weirdo |
| Brotherhood | Paradise |
| Exile On Main Street | Rocks Off |
| Exile On Main Street | Rip This Joint |
| Exile On Main Street | Shake Your Hips |
| Exile On Main Street | Casino Boogie |
| Exile On Main Street | Tumbling Dice |
+----------------------+-----------------------+
15 rows inset sec)
You can see that the ORDER BY
clause sorts the albums and tracks in the required order,
and that it’s listed last in the query after the join condition.
Let’s try a different query. Suppose you want to find out which tracks you’ve played.
You can do this with a join between the track and played tables, using the artist_id
,
album_id
, and track_id columns in the join condition. Here’s the query:
mysql> SELECT played, track_name FROM
-> track INNER JOIN played USING (artist_id, album_id, track_id)
-> ORDER BY track.artist_id, track.album_id, track.track_id, played;
+---------------------+-----------------------+
| played | track_name |
+---------------------+-----------------------+
| 2006-08-14 10:21:03 | Fine Time |
| 2006-08-14 10:25:22 | Temptation |
| 2006-08-14 10:30:25 | True Faith |
| 2006-08-14 10:36:54 | The Perfect Kiss |
| 2006-08-14 10:41:43 | Ceremony |
| 2006-08-14 10:43:37 | Regret |
| 2006-08-14 10:47:21 | Crystal |
| 2006-08-14 10:54:02 | Bizarre Love Triangle |
| 2006-08-15 14:00:03 | In A Silent Way |
| 2006-08-15 14:26:12 | Intruder |
| 2006-08-15 14:33:57 | New Blues |
+---------------------+-----------------------+
11 rows inset sec)
We’ve sorted the results by artist, then album, then track, and then the play date and time. Notice we’ve also had to unambiguously specify the columns in the ORDER BY
clause using the table name, since the first three columns occur in both tables. In practice, if columns are used in the join condition, it doesn’t matter whether you sort or select using the column from either table for example, in this query, track.artist_id and played.artist_id are interchangeable because they’re always the same for each row.
Before we leave SELECT, we’ll give you a taste of one of the functions you can use to
aggregate values. Suppose you want to find out how long New Order’s Brotherhood

Download 4.24 Mb.

Share with your friends:
1   ...   141   142   143   144   145   146   147   148   ...   366




The database is protected by copyright ©ininet.org 2024
send message

    Main page