[英]coverting join to subquery on mysql
我需要更改以下代码以使用子查询:
SELECT artist.name AS Banda, album.title AS Album, track.name AS Canción
FROM artist
INNER JOIN album
ON artist.artistid = album.artistid
INNER JOIN track
ON album.albumid = track.albumid;
到目前为止,我尝试过的是:
SELECT artist.name AS Banda, album.title AS Album, track.name AS Canción
FROM artist, album,track
WHERE artist.artistid IN (SELECT album.artistid FROM album, track where album.albumid = track.albumid);
在 MySQL 中不使用JOIN
相当复杂:
select (select a.name from artist where a.artistid = t.artistid) as banda,
t.albumname,
t.Canción
from (select t.*,
(select al.title from album al where al.albumid = t.albumid) as albumname,
(select al.artistid from album al where al.albumid = t.albumid) as artistid
from track t
) t;
您要编写的查询:
select (select a.name
from artist a
where a.artistid in (select al.artistid
from album al
where al.albumid = t.albumid
)
) as banda,
(select al.title
from album al
where al.trackid = t.trackid
) as album,
t.name as Canción
from tract t;
不幸的是,MySQL 通常不识别嵌套的相关子句引用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.