我需要显示所有未记录标题但在我的数据库中列出网址的艺术家的姓名和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;
返回一个空集。
答案 0 :(得分:3)
请注意,null不是一个值,所以你不能用相等或不相等的符号来提及它: 试试这个:
select *
from artists
where ar.webaddress Is not NULL
and artistid not in(select distinct artistid in titles)
答案 1 :(得分:3)
在MySql中,null不是值,因此where ar.webaddress != NULL;
将不起作用。例如,检查空值有特殊语法,is null
和is not null
。此外,内部联接只会为您提供具有标题的艺术家。要获得没有标题的艺术家,请尝试外连接并在连接表中检查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;
答案 2 :(得分: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
为某人