gpt4 book ai didi

mysql - 如何在多个表中和每个表之间进行测试?

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

我知道这对大多数人来说太简单了,但我无法从我正在使用的三本书中弄清楚它或在教程中找到它。他们都专注于更改数据库的布局,并且只提供有关此类事情的注释。

我能够创建一个每 9 分钟激活一次的程序,并且它需要做的其他事情都可以正常工作。

但我就是找不到如何完成这部分。

表_A

(ID, UnitTypeID, ShopLot, )

表_B

(ID, UnitTypeID, ShopLot, ContainerRef, )

表_C

(ID, PartTypeID, ContainerID, )
  1. 我需要首先选择 Table_A 中的所有 UnitTypeID=PAD
  2. 然后在 Table_B 中查找与 #1 的结果共享 ShopLot 的所有 UnitTypeID=FROG 实例
  3. 然后,对于每个 ContainerRef 配件 #2,检查 Table_C 中的 PartTypeID=FLIES,其中 ContainerRefContainerID 匹配>

当然,这与 Frog 和苍蝇无关,但它可以很好地相对指示该过程如何运作。

一旦我找到有效的“FLIES”,我就会应用这部分下面的代码并完成。

如果没有找到,则什么也不会发生..我猜 Frog 还饿了 9 分钟。

(我愿意接受有关良好查询语言引用的建议。MySQL 站点/视频/图似乎几乎完全专注于数据类型和数据库布局/结构事物。很少涉及处理实际数据)

最佳答案

Leonid 是正确的表连接,这正是您所需要的。 “SQL JOIN 子句用于根据两个或多个表之间的公共(public)字段组合来自两个或多个表的行。” -http://www.w3schools.com/sql/sql_join.asp就那么简单。您说对于表 A 和表 B,公共(public)字段是 ShopLot,对于表 B 和表 C 是 ContainerRef 与 ContainerID 匹配。

让我们一步一步地完成这个任务。

首先让我们从要显示的表中选择列

 SELECT Table_A.ID, Table_A.UnitTypeID, Table_A.ShopLot, Table_B.ID, Table_B.UnitTypeID,
Table_B.ContainerRef, Table_C.ID, Table_C.PartTypeID

您会看到 ShopLot 和 ContainerRef 只有一个,因为正如我们之前所说,这是公共(public)字段,无需在一行中两次显示相同的日期。

下一步是查看我们从哪里选择此列。在此步骤中,我们组合来自这些单独表的行,并基本上创建一个包含 select 语句中所有这些列的表。看起来像这样

FROM Table_A
INNER JOIN Table_B
ON Table_A.ShopLot = Table_B.ShopLot
INNER JOIN Table_C
ON Table_B.ContainerRef = Table_C.ContainerId

这里发生了什么。首先我们说 SELECT(something) FROM Table_A 并(内部)将她与 Table_B 连接...然后有一个问题如何连接这两个表(基于什么?)?答案是 ON Table_A.ShopLot 和 Table_B.ShopLot 字段。从 Table_A 中取出一行,查看 ShopLot 字段的值,并在 Table_B 中查找具有该值(如果有)的所有行并将它们连接起来。 Table_C 的连接方式与仅更改字段名称的方式相同。

第三步是创建 WHERE 子句。这可能是最简单的部分,因为我们现在有一张大 table ,我们只需要说出我们需要什么

WHERE Table_A.UnitTypeID='PAD' AND Table_B.UnitType.ID='FROG' 
AND Table_C.PartTypeID='FLIES'

就是这样。我尽力让它变得简单。我敢打赌网上有很多关于沐浴者的解释,只需要做一点搜索......

这是完整的代码:

SELECT Table_A.ID, Table_A.UnitTypeID, Table_A.ShopLot, Table_B.ID, Table_B.UnitTypeID,
Table_B.ContainerRef, Table_C.ID, Table_C.PartTypeID
FROM Table_A
INNER JOIN Table_B
ON Table_A.ShopLot = Table_B.ShopLot
INNER JOIN Table_C
ON Table_B.ContainerRef = Table_C.ContainerId

WHERE Table_A.UnitTypeID='PAD' AND Table_B.UnitType.ID='FROG'
AND Table_C.PartTypeID='FLIES'

我希望这能有所帮助,它并不像乍一看那么复杂。如果示例有两个表会更好,但事实就是如此。总账

关于mysql - 如何在多个表中和每个表之间进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29153032/

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