Sunday, October 29, 2017

MySQL joins

Three ways to do an INNER JOIN - all three are the same.
The first is not what I am used to.
It only works if the artist_id column exists and is the same name in both tables.

SELECT artist_name, album_name
FROM artist
INNER JOIN album
USING (artist_id);

SELECT artist_name, album_name 
FROM artist
INNER JOIN album ON artist.artist_id = album.artist_id;

SELECT artist_name, album_name
FROM artist, album
WHERE artist.artist_id = album.artist_id;

LEFT and RIGHT JOINS:

SELECT track_name, played 
FROM track LEFT JOIN played USING (artist_id, album_id, track_id)
ORDER BY played DESC;

SELECT artist_name, album_name 
FROM artist LEFT JOIN album ON artist.artist_id = album.artist_id;

[Summarized from Learning MySQL]