我正在尝试将多个表中的特定列放入单个查询表中,删除没有活动艺术家的列,并组合两个表中的Name列。我用INNER JOIN尝试了很多东西,但我无法理解。
对于此示例,允许组合名称,NumberOfMembers,当前活动,Songtitle,以及如何删除与非活动艺术家相关的列。
create table Artists
( Name text, NumberOfMembers integer, CurrentlyActive text);
create table BestSongsEver
( Name text, SongTitle text, YearCreated integer, Ranking integer, genre text, TimesListenedTo integer, RatingScale integer);
insert into Artists values('Kanye West', 1, 'Yes');
insert into Artists values('Michael Jackson', 1, 'No');
insert into Artists values('Aleyna Tilki', 1, 'Yes');
insert into BestSongsEver values('Kanye West', 'Power', 2010, 1, 'Hip Hop', 237, 9.7);
insert into BestSongsEver values('Aleyna Tilki', 'Cevapsiz Cinlama', 2016, 6, 'Turkish Pop', 70, 8.9);
insert into BestSongsEver values('Michael Jackson', 'Thriller', 1982, 2, 'Pop', 200, 9.2);
查询尝试:
SELECT *
FROM Artists A
INNER JOIN BestSongsEver BSE ON BSE.Name = A.Name
我认为你的意思是在没有活跃的艺术家而不是列的情况下删除行
在这种情况下,您可以使用where子句过滤掉所需的所有内容,这会过滤您的数据。
例:
SELECT *
FROM Artists A
INNER JOIN BestSongsEver BSE ON BSE.Name = A.Name
WHERE A.currentlyActive = 'yes'
这将在两张牌桌上两次显示'Kanye West'两次。如果要筛选出列,可以选择所需的列,如下所示:
SELECT A.Name, BSE.Name,...