【问题标题】:Column 'SSN' in field list is ambiguous字段列表中的“SSN”列不明确
【发布时间】:2020-07-30 19:10:11
【问题描述】:

我有三个表,即 Student、Enrolls 和 Course。我想获取有关参加计算机体系结构课程的学生的信息(他们的 SSN、名字和姓氏)。

我写了一个类似的查询

select SSN,First_Name,Last_Name,Course_Name='Computer Architecture'
from STUDENT s,ENROLLS e,COURSE c where s.SSN=e.SSN and e.CourseNo=c.CourseNo;

得到一个错误提示:

ERROR 1052 (23000):字段列表中的“SSN”列不明确

我的表结构如下

Student(SSN,First_Name,Last_Name,Street,City,Zip,State)
Course(CourseNo,Course_Name,Department)
Enrolls(SSN,SectionNo,CourseNo)

我哪里弄错了?

【问题讨论】:

    标签: mysql database join mysql-workbench


    【解决方案1】:

    你只需在它的福林中添加别名,它就变得明确了

    我也把它改成了 JOINs ,你的方法已经过时多年了

    SELECT 
        e.SSN,
        First_Name,
        Last_Name,
        Course_Name = 'Computer Architecture'
    FROM
        STUDENT s
        INNER JOIN 
        ENROLLS e ON s.SSN = e.SSN
        INNER JOIN
        COURSE c ON e.CourseNo = c.CourseNo;
    

    【讨论】:

      【解决方案2】:

      SQL 支持通过在引用前加上完整的表名或表别名来限定列:

      SELECT 
          e.SSN,
          First_Name,
          Last_Name,
          Course_Name = 'Computer Architecture'
      FROM STUDENT s
          JOIN 
          ENROLLS e ON s.SSN = e.SSN
          JOIN
          COURSE c ON e.CourseNo = c.CourseNo;
      

      【讨论】:

        猜你喜欢
        • 2020-09-01
        • 1970-01-01
        • 2011-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多