Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 比较两个表时,Sql-数据引用不存在_Mysql_Sql - Fatal编程技术网

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