Mysql 比较两个表时,Sql-数据引用不存在
我有两张桌子-Mysql 比较两个表时,Sql-数据引用不存在,mysql,sql,Mysql,Sql,我有两张桌子-artist和album artist-id、name、artist\u流派中的列 专辑中的列-id、姓名、艺术家姓名、专辑类型、发行日期 我想查找专辑表中所有不属于艺人表中所列流派的艺人(更具体地说,如果艺人X注册了流派“pop”和“rock”,但制作了流派“classic”的专辑Y,则应列出艺人、专辑和流派。尝试以下方法: select artist_name, name, album_genre from album alb where album_genre not in
artist和album
artist-id、name、artist\u流派中的列
专辑中的列-id、姓名、艺术家姓名、专辑类型、发行日期
我想查找专辑表中所有不属于艺人表中所列流派的艺人(更具体地说,如果艺人X注册了流派“pop”和“rock”,但制作了流派“classic”的专辑Y,则应列出艺人、专辑和流派。尝试以下方法:
select artist_name, name, album_genre
from album alb
where album_genre not in (select distinct artist_genre
from artist
where name = alb.artist_name)
这个怎么样
"SELECT artist_name FROM album, artist WHERE artist_name = name AND album_genre != album_genre";
谢谢Upendra!这正是我所需要的。我先尝试了“不存在”,但没能成功。非常感谢。Upendra,+1表示公平竞争!:-)干杯,托马斯!结果不太理想。我从Upendra那里得到了一个解决方案。谢谢@user3168017:根据我的观点,Thomas的答案比我的答案在性能上要好得多,因为join比sub query快得多。我已经尝试了一次,并让它工作起来。你说得对upendra Tomas的解决方案更有效。
select artist_name, name, album_genre
from album left join artist on artist.name = album.artist_name and album_genre = artist_genre
where artist.id is null