【问题标题】:How to select from database with relations?如何从具有关系的数据库中进行选择?
【发布时间】:2010-08-18 12:06:20
【问题描述】:

我在下图中有带有架构的数据库,我需要选择与 [letaky] 的一行(一个 id)相关的所有内容。这意味着相关的 [zamestnanci]、每一个相关的 [obsah] 和其中的每一个 [knihy]。

这是我第一次在数据库中使用关系,我不知道如何进行这样的选择。

【问题讨论】:

  • 有什么奇怪的命名原因吗?这没有什么特别的问题,只是如果它们有有意义的名称,就会更容易理解这些关系。除非那是一种不同的语言。
  • 是的,那是另一种语言。 “Zamestnanci” = 员工,“idzamestnance” = “employee_id”等

标签: mysql relation


【解决方案1】:

使用 JOIN ...打开:

SELECT * 
FROM zamestnanci
JOIN lekaty ON lekaty.zamestnanciid = zamestnanci.id
JOIN obsah ON obsah.idletaku = lekaty.id
JOIN knihy ON knihy.id = obsah.idknihy
WHERE letaky.id = 123

您可能还需要考虑是否需要对这些联接中的每一个进行 INNER JOIN、LEFT JOIN 或 RIGHT JOIN。 StackOverflow 上的许多其他问题都描述了这些 JOIN 之间的区别,例如这个:

SQL Join Differences

【讨论】:

  • 所以澄清一下,在数据库中添加关系不会改变您使用查询选择数据的方式。那么添加关系是否会防止意外删除连接的数据?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-05
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多