Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 用SQL连接四个表_Mysql_Oracle - Fatal编程技术网

Mysql 用SQL连接四个表

Mysql 用SQL连接四个表,mysql,oracle,Mysql,Oracle,如何联接4个表并检索关于一个ID(行)的信息 这就是我目前的情况:根据您的评论,问题是您有多个同名列,因此需要使用别名: SELECT Crs_Desc, Enrollment.Enrollme, Enrollment.Offer_No FROM Offerin, Course JOIN Enrollment ON Enrollment.Offer_No = Offering.Offer_No JOIN Student ON Student.Std_ID = Enrollment.Std_

如何联接4个表并检索关于一个ID(行)的信息


这就是我目前的情况:

根据您的评论,问题是您有多个同名列,因此需要使用别名:

SELECT  Crs_Desc, Enrollment.Enrollme,  Enrollment.Offer_No
FROM Offerin, Course
JOIN Enrollment ON Enrollment.Offer_No = Offering.Offer_No 
JOIN Student ON Student.Std_ID = Enrollment.Std_ID

WHERE Enrollment.Std_ID = '103'
GROUP BY Enrollment.Std_ID;

如果此查询无法解决您的问题,请共享您的表数据和预期结果

尝试类似的操作

SELECT  Student.Student_ID, Course.Crs_Desc, 
    Enrollment.Std_ID, Enrollment.Offer_No, 
    Offering.Offer_No 
    FROM Student
        JOIN Enrollment
            ON Student.Student_ID = Enrollment.Std_ID
        JOIN Offering
            ON Enrollment.Std_ID = Offering.Offer_No
        JOIN Course
            ON Offering.Offer_No = Course.CourseNo
        WHERE Student_ID = '103';
此外,WHERE子句看起来可能是错误的。试试“WHERE Student_ID='103'”

试试这个:

SELECT  Student.Student_ID
       ,Course.Crs_Desc
       ,Enrollment.Std_ID
       ,Enrollment.Offer_No
       ,Offering.Offer_No 
    FROM Student
        LEFT JOIN Enrollment
            ON Student.Student_ID = Enrollment.Std_ID
        LEFT JOIN Offering
            ON Enrollment.Std_ID = Offering.Offer_No
        LEFT JOIN Course
            ON Offering.CourseNo = Course.CourseNo
        WHERE Student.Student_ID = '103';


到目前为止,你所拥有的东西有什么不起作用?@Undo:我想说的是一切。你能分享表格结构、一些样本数据和你想要达到的结果吗?从提供、注册、课程中选择Student.Student\u ID、Course.Crs\u Desc、incluation.Std\u ID、incluation.Offer\u No、Offer.Offer\u No,学生ORA-00918:列定义不明确这是错误使用别名以避免不明确的列显示它知道enr=注册表吗?这是我人生的一部分confusion@extram什么意思?“注册为enr”会给表添加别名,使其在整个查询中都可以被引用为enr。此查询中没有聚合函数。从“提供为关闭”、“当然”到“学生*错误”,第2行:ORA-00933:SQL命令未正确命名您不需要使用别名,尽管它们通常会使事情更清楚。关键是您需要使用别名或实际的表名来限定列名,以消除歧义。我也得到了一个错误。ORA-00904:“学生”。“学生ID”:无效标识耶我只是更正了名称,但这是错误我得到的ORA-00979:不是课程中的分组表达式。Crs\u desc取出分组依据,你在这里无论如何都不需要它。现在没有错误!!但是,即使103号学生选修了3门课程,也没有选择任何一行。这意味着什么?你的课程表与课程表有什么关系,哪些列?第10行错误:ORA-01722:无效数字a星=课程.Course\u现在什么是Offering.CourseNo和Course.CourseNo的数据类型?如果两列都是VARCHAR2,你报告的错误就没有意义了。您已经参考了
CourseNo
CourseNo
两个列-这两个列是关键列,数据类型匹配吗?谢谢,老兄,我确实找到了上面的一个。改为使用左连接并更改了两列。我真的很感激。