【问题标题】:SQL joins beginnerSQL加入初学者
【发布时间】:2017-07-17 12:13:17
【问题描述】:

我对 sql 很陌生,我正在努力创建一个查询。我有两张桌子:

人物

  • 字符ID
  • 名字
  • 姓氏
  • 性别

情侣

  • 情侣ID
  • 女性ID
  • 男性ID

现在我正在尝试这样组合:

  • femaleFName
  • femaleLName
  • 男名
  • 男名

我试过了:

SELECT character.firstname AS femaleFName, character.lastname AS femaleLName
FROM Couple INNER JOIN Character ON Character.characterID = Couple.femaleID

但现在我正在为第二次加入而苦苦挣扎。

【问题讨论】:

    标签: sql join


    【解决方案1】:

    您所要做的就是再次加入该表。为此,您必须提供别名,以免表格混淆。

    SELECT 
    cf.firstname AS femaleFName, cf.lastname AS femaleLName,
    mf.firstname AS maleFName, mf.lastname AS maleLName
    FROM Couple 
    INNER JOIN Character AS cf ON cf.characterID = Couple.femaleID
    INNER JOIN Character AS mf ON mf.characterID = Couple.maleID
    

    关键字AS虽然不是强制性的,可以省略。

    【讨论】:

      【解决方案2】:

      添加另一个JOIN,如下所示。这里c是区分第二个join的表别名

      SELECT character.firstname AS femaleFName, character.lastname AS femaleLName
      FROM character INNER JOIN Couple ON Character.characterID = Couple.femaleID
      INNER JOIN Couple c ON Character.characterID = c.maleID
      

      【讨论】:

        【解决方案3】:

        您需要使用自我加入来获得您想要的结果。根据需要使用以下查询获取结果。

        Select cf.firstname as femaleFName,
        cf.lastname as femaleLName,
        cm.firstname as maleFName,
        cm.lastname as maleLName
        from Couple c 
        inner join Character cf on c.femaleID = cf.characterID
        inner join Character cm on c.maleID= cm.characterID
        

        希望对你有所帮助。

        谢谢!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-12
          • 2014-07-09
          相关资源
          最近更新 更多