通过一个查询从多个表返回数据

wpcxdonn  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(306)

我有两张table,用户和年级。
表用户

Class_ID | Name
100      | Alex
101      | Anna

工作台等级

Class_ID  | Teacher  | Subject  |  Time
  100     |   Join   |  English |  9:00
  101     |   ...    |  Math    |  10:00

查询所有表用户,我运行:

SELECT * FROM User WHERE class_ID=100;

查询所有表格等级,我运行:

SELECT * FROM Grade WHERE class_ID=100;

我怎么回去

Name | Class_ID  | Teacher  | Subject  |  Time
Alex |  100      |   Join   |  English |  9:00

只需要一个查询?

klsxnrf1

klsxnrf11#

你可以用一个简单的 Inner Join 在两张table之间。
在多表查询中使用别名是一种很好的做法。 User 是mysql中的保留关键字。因此,如果可以将表名更改为其他名称,那就更好了。否则,可以在其周围使用反记号(`)。
阅读:为什么选择*被认为是有害的?
请尝试以下操作:

SELECT  u.Name, 
        u.Class_ID, 
        g.Teacher, 
        g.Subject, 
        g.Time 
FROM `User` AS u
JOIN Grade AS g 
  ON u.Class_ID = g.Class_ID 
WHERE u.Class_ID = 100
nmpmafwu

nmpmafwu2#

SELECT  u.Name, u.Class_ID, g.Teacher, g.Subject, g.Time from User u

INNER JOIN Grade g ON u.Class_ID = g.Class_ID ORDER BY u.Class_ID
zpqajqem

zpqajqem3#

可以使用连接查询。从中得到一个想法。

SELECT column_name(s)
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;

相关问题