skip to Main Content

My task given

The given SQL creates a Song table and inserts some
songs. The first SELECT statement selects songs released after 1992.
The second SELECT statement selects the release year for song with ID
800.

Create a third query that combines the two existing queries. The first
SELECT should be the outer query, and the second SELECT should be the
subquery. The ORDER BY clause should appear after the subquery.

ID INT,
  Title VARCHAR(60),
  Artist VARCHAR(60),
  ReleaseYear INT,
  Genre VARCHAR(20),
  PRIMARY KEY (ID)
);

INSERT INTO Song VALUES
  (100, 'Hey Jude', 'Beatles', 1968, 'pop rock'),
  (200, 'You Belong With Me', 'Taylor Swift', 2008, 'country pop'),
  (300, 'You're Still the One', 'Shania Twain', 1998, 'country pop'),
  (400, 'Need You Now', 'Lady Antebellum', 2011, 'country pop'),
  (500, 'You've Lost That Lovin' Feeling', 'The Righteous Brothers', 1964, 'R&B'),
  (600, 'That's The Way Love Goes', 'Janet Jackson', 1993, 'R&B'),
  (700, 'Smells Like Teen Spirit', 'Nirvana', 1991, 'grunge'),
  (800, 'Even Flow', 'Pearl Jam', 1992, 'grunge'),
  (900, 'Black Hole Sun', 'Soundgarden', 1994, 'grunge');

SELECT *
FROM Song
WHERE ReleaseYear > 1992
ORDER BY ReleaseYear;

SELECT ReleaseYear
FROM Song 
WHERE ID = 800;

My attempt so far

SELECT ReleaseYear
FROM Song
WHERE ReleaseYear > 1992
   (Select ReleaseYear
   FROM Song 
   WHERE ID = 800)
Order by ReleaseYear DESC;

I dont understand what is wrong with my query and subquery. Every time I try to run it I get: ERROR 1064, indicating that it does not understand my code.

2

Answers


  1. To get the release year for songs released after 1992 and for the song with ID 800, you can use a UNION ALL operator to combine the results of two SELECT queries:

    SELECT ReleaseYear 
    FROM Song 
    WHERE ReleaseYear > 1992
    UNION ALL
    SELECT ReleaseYear 
    FROM Song 
    WHERE ID = 800;
    

    db<>fiddle output

    Login or Signup to reply.
  2. The instructions are not clear but I suspect the intended query is:

    SELECT *
    FROM Song
    WHERE ReleaseYear > 1992
    OR ReleaseYear = (
        SELECT ReleaseYear
        FROM Song
        WHERE ID = 800
    )
    ORDER BY ReleaseYear;
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search