我试图将多个表中的特定列放入单个查询表中,删除没有活动艺术家的列,并组合两个表中的“名称”列。我用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
答案 0 :(得分:0)
我认为你的意思是在没有活跃艺术家的情况下删除行而不是列。
在这种情况下,您可以使用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,...