gpt4 book ai didi

php - 使用联接的 Sql 查询

转载 作者:行者123 更新时间:2023-11-29 13:35:25 25 4
gpt4 key购买 nike

我有 2 个表 - 学生表、考试表

学生表架构:

id  Name  Course
1 Kavi Dr.
2 Priya Engg.

检查表架构:

Examid Student_id  Exam Date
1 1 22-03-2014
2 2 23-04-2014
3 1 24-04-2014

我的要求是,我需要连接这两个表,以便我可以访问该表中的所有列。到目前为止,我已经尝试使用 Innerjoin 进行查询,但我得到的结果是

id  Name  Course
1 Kavi Dr.
2 Priya Engg.
1 1 22-03-2014
2 2 23-04-2014

但我需要它,

id Name Course Exam Date
1 Kavi Dr. 22-03-2014
1 Kavi Dr. 24-04-2014
2 Priya Engg. 23-04-2014

请帮忙!

编辑:

SELECT *
FROM STUDENT S INNER JOIN
EXAM E
ON S.id=E.Student_id

最佳答案

我将为您提供查询,但首先您应该花点时间了解 select 语句的工作原理。

当您运行 select 语句时,您可以将其想象为定义一个完全临时的表,该表仅在您查找内容时存在一段时间。这通常被称为查询结果。

您选择的列列表实际上将成为新表的列。 “FROM”决定使用哪些表来映射这些列。 “WHERE”和“HAVING”子句决定引擎在确定要包含的行时应使用哪些规则。

那么,您希望结果中包含哪些列?

  • 学生 ID
  • 学生姓名
  • 学生.类(class)
  • 考试日期

您正在从学生表和考试表中进行选择,但您希望根据学生 ID 来“合并”行(这就是 JOIN 发挥作用的地方 - 您应该查看 this 以更好地理解JOIN 的工作原理)

最后,听起来您想要一切,因此没有 WHERE/HAVING 子句。

所以你的查询应该是这样的:

SELECT student.id, student.Name, student.Course, exam.Date
FROM student
JOIN exam ON student.id = exam.Student_id

现在,请注意,您应该为列保持一致的命名结构。我建议您始终以小写字母开头(因此它将是student.course),并且就我个人而言,我始终避免在数据库定义中使用大写字母。至少,以大写字母开头的内容通常表示编程领域中的类或对象名称

听起来您对处理重复项很感兴趣。您还想研究“DISTINCT”和“GROUP BY”等关键字。

此外...您在提问时需要提供更多信息。解释一下你已经尝试过什么。有组织地解释所有要求和目标。你明白了。

关于php - 使用联接的 Sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18814403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com