混淆列混淆

时间:2018-03-06 07:34:35

标签: sql

我试图将多个表中的特定列放入单个查询表中,删除没有活动艺术家的列,并组合两个表中的“名称”列。我用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

1 个答案:

答案 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,...