我需要显示所有未录制标题但在数据库中列出了网址的艺术家的姓名和ID。

这将涉及两个表:

Artists
-------
ArtistID, ArtistName, City, Region, WebAddress

Titles
------
TitleID, ArtistID, Title, StudioID, Genre


我的查询如下:

 select ar.*
 from artists ar
 inner join titles t
 on ar.artistid = t.artistid
 where ar.webaddress != NULL;


返回一个空集。

最佳答案

在MySql中,null不是值,因此where ar.webaddress != NULL;将不起作用。有用于检查空值的特殊语法,例如is nullis not null。此外,内部联接只会为您提供具有标题的艺术家。要获得没有标题的艺术家,请尝试外部联接并在联接表中检查是否为空



 select ar.*
 from artists ar
 left join titles t
 on ar.artistid = t.artistid
 where ar.webaddress Is not NULL
 and t.ArtistID is null;

关于mysql - JOIN返回空集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19623186/

10-11 03:39