MySQL查询两张ID相同的表的数据

介绍

在MySQL数据库中,有时候我们需要查询两张表中ID相同的记录,以获取相关联的数据。本文将指导你如何使用MySQL语句来实现这个目标。

步骤

下面是查询两张表中ID相同的数据的整个流程:

步骤 操作
第一步 建立两张表
第二步 插入数据
第三步 编写查询语句
第四步 获取结果

接下来我们一步一步来实现。

第一步:建立两张表

首先,我们需要建立两张表,这两张表将会有一个共同的ID列。我们以学生表和成绩表为例,创建两张表student和score。

CREATE TABLE student (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT
);

CREATE TABLE score (
  id INT PRIMARY KEY,
  subject VARCHAR(50),
  score INT
);

第二步:插入数据

接下来,我们需要向两张表中插入一些数据,以便进行查询操作。

INSERT INTO student (id, name, age)
VALUES (1, 'John', 20),
       (2, 'Alice', 22),
       (3, 'Bob', 21);

INSERT INTO score (id, subject, score)
VALUES (1, 'Math', 90),
       (2, 'English', 80),
       (3, 'Science', 95);

第三步:编写查询语句

现在,我们可以开始编写查询语句来获取两张表中ID相同的记录。我们使用INNER JOIN语句来实现这个目标。

SELECT student.id, student.name, score.subject, score.score
FROM student
INNER JOIN score ON student.id = score.id;

第四步:获取结果

最后,我们可以运行查询语句并获取结果。这个查询将会返回ID相同的学生和他们对应的成绩。

id name subject score
1 John Math 90
2 Alice English 80
3 Bob Science 95

代码解释

以下是每一步中使用的代码及其解释:

  1. 创建学生表和成绩表:
CREATE TABLE student (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT
);

CREATE TABLE score (
  id INT PRIMARY KEY,
  subject VARCHAR(50),
  score INT
);

这段代码使用CREATE TABLE语句来创建两张表,分别是student和score。student表包含id、name和age三个列,score表包含id、subject和score三个列。

  1. 插入数据:
INSERT INTO student (id, name, age)
VALUES (1, 'John', 20),
       (2, 'Alice', 22),
       (3, 'Bob', 21);

INSERT INTO score (id, subject, score)
VALUES (1, 'Math', 90),
       (2, 'English', 80),
       (3, 'Science', 95);

这段代码使用INSERT INTO语句向student表和score表中分别插入数据。每个插入语句指定了要插入的列和对应的值。

  1. 编写查询语句:
SELECT student.id, student.name, score.subject, score.score
FROM student
INNER JOIN score ON student.id = score.id;

这段代码使用SELECT语句查询学生表和成绩表中ID相同的记录。INNER JOIN语句用于将两张表根据ID列进行关联。

  1. 获取结果:

查询结果将返回ID相同的学生和他们对应的成绩。

类图

以下是本文中使用到的类图:

classDiagram
    class Student {
        -id: int
        -name: string
        -age: int
    }

    class Score {
        -id: int
        -subject: string
        -score: int
    }

    Student "1" -- "1" Score

上述类图展示了学生和成绩之间的关系,每个学生可以对应一个成绩。

饼状图

以下是本文中使用到的饼状图: