0

我需要显示所有未录制标题但在我的数据库中列出了网址的艺术家的姓名和 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;

它返回一个空集。

4

3 回答 3

4

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

IE

 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;
于 2013-10-27T20:42:49.503 回答
3

请注意, null 不是一个值,因此您不能用等号或不等号提及它:试试这个:

select *
from artists
where ar.webaddress Is not NULL
and artistid not in(select distinct artistid in titles)
于 2013-10-27T20:34:35.457 回答
1
SELECT ar.*
FROM Artists a INNER JOIN Titles T
ON A.ArtistID = T..ArtistID
WHERE a.WebAddress IS NOT NULL 
AND T.Title IS NULL

这将返回一个人Webaddress的记录no title

于 2013-10-27T20:49:51.693 回答