Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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
sql-组合来自不同表的列_Sql_Sql Server - Fatal编程技术网

sql-组合来自不同表的列

sql-组合来自不同表的列,sql,sql-server,Sql,Sql Server,我有四张不同的桌子 class(classID, className) person(personID, name) schedule(personID, classID) enrollment(personID, grade) 在一个表中获取每个不同列的最简单方法是什么? 我知道我会从注册开始,获取personID和grade,将它们添加到结果表中,然后使用personID获取名称和classID,然后使用classID获取类名。我只是不知道该怎么做。看来你需要这样的东西: SELECT p

我有四张不同的桌子

class(classID, className)
person(personID, name)
schedule(personID, classID)
enrollment(personID, grade)
在一个表中获取每个不同列的最简单方法是什么?
我知道我会从注册开始,获取personID和grade,将它们添加到结果表中,然后使用personID获取名称和classID,然后使用classID获取类名。我只是不知道该怎么做。

看来你需要这样的东西:

SELECT p.name personName, e.grade, c.className
    FROM person p
    JOIN enrollment e ON e.personId = p.personId
    JOIN schedule s ON s.personId = p.personId
    JOIN class c ON c.classId = s.classId
    WHERE p.personId = 1;

提示:
JOIN
DISTINCT
。它也可以是
MySQL
SQL Server
,不能两者都是?是哪一个?删除不必要的标签。可能重复的标签不清楚您想要什么。但是试试这个:
SELECT*from class NATURAL JOIN schedule NATURAL JOIN person NATURAL JOIN registration