繁体   English   中英

mysql 上的子查询的隐蔽连接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM