gpt4 book ai didi

mysql - 查询MySQL员工示例数据库中的所有数据

转载 作者:搜寻专家 更新时间:2023-10-30 22:14:59 25 4
gpt4 key购买 nike

我正在尝试查询 MySQL Employees 示例数据库中的所有数据。 (structurerow counts)

我试图以一种保留所有表之间关系的方式来执行此操作,但我从来没有在这最后一次查询过数据库,老实说,我迷失在连接等操作中。如果有任何帮助,我将不胜感激。

谢谢!


编辑:SQL:

SELECT *
FROM
`employees`
LEFT JOIN `salaries`
ON `employees`.`emp_no` = `salaries`.`emp_no`
LEFT JOIN `dept_manager`
ON `employees`.`emp_no` = `dept_manager`.`emp_no`
LEFT JOIN `titles`
ON `employees`.`emp_no` = `titles`.`emp_no`,
JOIN
`departments` on `departments`
ON `departments`.`dept_no` = `dept_emp`.`dept_no`

LIMIT 50;

最佳答案

我尝试尽可能简单地解释联接。

比方说,我们必须存储一些相关信息:人员(姓名、姓氏)和分配给人员的一些电子邮件。

首先 - 我们将人员信息保存在人员表中。我们需要唯一的行标识符 personId,这将使我们能够在人员数据库中指向确切的人员。

table persons
personId, name, surname
1, John, Foo
2, Mike, Bar

当我们有这样的表时,我们可以将个人电子邮件存储在其他表中。在这种情况下,创建唯一的行标识符不是必需的,但将这些行标识符存储在所有表中是一个很好的做法。 PersonId 字段告诉我们谁拥有该电子邮件。

table emails
emailId, personId, address
1, 1, john.foo@company.com
2, 1, john.foo@goomail.com
3, 2, mike.bar@company.com
4, 2, mike.bar@yaaho.com

现在我们可以使用 join 选择数据了。

SELECT persons.Name, persons.Surname, emails.address
FROM
persons
join
emails
ON
persons.personId = emails.personId

该查询将返回数据(分配有地址的人)。

  John, Foo, john.foo@company.com
John, Foo, john.foo@goomail.com
Mike, Bar, mike.bar@company.com
Mike, Bar, mike.bar@yaaho.com

清楚了吗?

如果您不清楚连接 - 可以访问 phpcademy.org 或 thenewboston.org - 他们有关于许多语言和技术的非常好的教程,包括 SQL。


稍后添加:

你也可以连接多个表,像这样:

SELECT primarykey, key1,key2, other, fields, detail_t_1.something
FROM
master_t
JOIN
detail_t_1 on detail_t_1
ON master_t.key1 = detail_t_1.key1,

detail_t_2 on detail_t_2
ON master_t.key2 = detail_t_2.key2

稍后添加:

如果有多个“详细信息”行(如我的示例中的 2 封电子邮件)- 返回的数据将多次包含一个人,每个电子邮件地址。

在 SQL 中返回的数据总是以表的形式,而不是树的形式。

关于mysql - 查询MySQL员工示例数据库中的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115717/

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