2017-06-02 43 views
0

我有一个来自星球大战电影的表格“角色”和表格“行星”的数据库。我需要找出与他们的家庭网络具有相同隶属关系的人物的名字。该数据是在下面的图片:如何根据同一个表中的实例获取结果集?

人物

enter image description here

行星

enter image description here

我试过,但它不工作

SELECT character_name 
FROM characters c1 
INNER JOIN characters c2 
ON c1.affiliation = c2.affiliation AND c1.homeworld = c2.homeworld 
GROUP BY character_name; 

回答

0

您需要通过行星的名字加入charactersplanets表,然后用相同的隶属关系过滤行:

SELECT character_name 
FROM characters INNER JOIN planets ON characters.homeworld = planets.planet_name 
WHERE characters.affiliation = planets.affiliation; 
0

你需要加入两个表,然后由隶属关系限制。你可以联接子句中添加此约束或where子句,所以这两个工作:

SELECT character_name 
FROM characters c 
INNER JOIN planets p ON 
    c.homeworld = p.homeworld 
    AND c.affiliation = p.affiliation 

SELECT character_name 
FROM characters c 
INNER JOIN planets p ON 
    c.homeworld = p.homeworld 
WHERE c.affiliation = p.affiliation 
相关问题