您应该如何对仅存在于一个表中的值进行 SQL 子查询?

问题描述 投票:0回答:0
“我目前正在通过免费课程自学如何使用 SQL,如果有任何见解,我将不胜感激。我对原始问题进行了 MRE。

具体来说,我不明白如果“title”值不是 artists 表中的值,我该如何对其进行子查询。此外,我查看了其他示例,内部和外部查询都试图在两个表中找到一个值。

Requested Subquery:添加另一个查询,该查询将从“流行”艺术家中选择所有歌曲的标题。它应该在基于您之前查询的嵌套子查询上使用 IN。

我根据我研究过的例子尝试了不同的代码,但无法从根本上理解我做错了什么。任何帮助将不胜感激。

    CREATE TABLE artists (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, rating INTEGER, genre TEXT) 

           INSERT INTO artists (name, rating, genre) VALUES ( "Bibi", 9, "Pop");
           INSERT INTO artists (name, rating, genre) VALUES ("Kai", 8, "Pop");

    CREATE TABLE songs (id INTEGER PRIMARY KEY AUTOINCREMENT, artist TEXT, title TEXT);

           INSERT INTO songs (artist, title) VALUES ("Bibi", "The Weekend");
           INSERT INTO songs (artist, title) VALUES ("Kai", "Rover");

    SELECT title FROM songs WHERE artist = "Bibi";
    SELECT name FROM artists WHERE genre = "Pop";

    SELECT title FROM songs (SELECT name FROM artists WHERE genre = "Pop");
    SELECT * FROM songs WHERE title IN (SELECT name FROM artists WHERE genre = "Pop");
subquery operators in-operator in-subquery
© www.soinside.com 2019 - 2024. All rights reserved.