需要帮助修复我的SQL代码

时间:2016-10-07 06:33:39

标签: sql union

所以我有这个问题: 编写一个显示电影详细信息(名称,类型和分类)的SQL语句。仅显示不属于“犯罪”的电影且名称不是单个单词(例如,“狮子”是单个单词电影名称,而“自杀小队”不是单个单词)。

并且我认为我必须使用联合声明,但我一直在做的是不起作用。

SELECT MOVIEGENRE, MOVIENAME
FROM MOVIE 
WHERE MOVIEGENRE NOT LIKE '%CRIME%'

UNION

SELECT MOVIENAME, MOVIEGENRE 
FROM MOVIE
WHERE MOVIENAME NOT LIKE '% %';

任何人都可以帮助我吗?

我一直得到这个输出:

MOVIEGENRE           MOVIENAME          
-------------------- --------------------
ADVENTURE            PETES DRAGON        
ANIMATION            FINDING DORY        
CRIMINAL             CRIME               
HORROR               LIGHTS OUT          
HORROR               THE CONJURING 2     
NERVE                CRIME  

顺便说一下,大学一年级学生:)

3 个答案:

答案 0 :(得分:1)

只需将您的两个条件合并为一个WHERE子句:

SELECT MOVIEGENRE,
       MOVIENAME
FROM MOVIE
WHERE MOVIEGENRE NOT LIKE '%CRIME%' AND  -- not crime based
      MOVIENAME LIKE '% %'               -- name is two or more words

答案 1 :(得分:0)

试试这个:

SELECT MOVIEGENRE, MOVIENAME
FROM MOVIE 
WHERE MOVIEGENRE NOT LIKE '%CRIME%'
AND INSTR(MOVIENAME,' ',1,1)=0

你不需要工会,条件就足够了。

答案 2 :(得分:0)

如果您使用的是SQL Server,请使用以下脚本。

SELECT MOVIEGENRE, MOVIENAME
FROM MOVIE 
WHERE MOVIEGENRE NOT LIKE '%CRIME%' --Getting MOVIEGENRE which is not crime
 AND LTRIM(RTRIM(MOVIENAME)) like '% %' --Getting MOVIENAME contains more than one word