gpt4 book ai didi

mysql - 在sql查询中从另一个表引用表名

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

我有 3 张 table 。

1 个主表 - 包含列的组件 - ID、组件名称、ID_组件

还有 2 个组件表

第一个 - 带有列的硬盘 - ID、容量

第二个 - 带列的 RAM - ID、速度

在主表中,我有组件的 ID,其详细信息位于硬盘或 RAM 表中。列 name_of_component 选择硬盘或 RAM,ID_component 从所选表中选择正确的详细信息。

例如,假设主表中是这一行

  • 1,内存,2

RAM表中有两行

  • 1.2GB
  • 2.4GB

我尝试过这样的事情

Select * 
from (Select name_of_component
from Component
where ID=1)
join Component on (Select name_of_component
from Component
where ID=1).ID = Component.ID_component

但是这不起作用。那么有什么办法,如何从另一个表中选择名称的表中调用信息呢?我无法使用一张表来了解 RAM 和显卡的详细信息,因为它们具有不同的详细信息。那么我该怎么做呢?

语法错误是您输入的 SQL 语句包含无效的 FROM 子句。

最佳答案

您无法在 SQL 本身中执行此操作。我想你可以建立一个联盟:

select * from ram join component on ram.id=component.id where component.name_of_component='RAM' and component.id=myid
union
select * from harddisk join component on ram.id=component.id where component.name_of_component='harddisk' and component.id=myid

由于 name_of_component 只能同时为这些值之一,因此联合的一部分将不返回任何内容,而另一部分则返回正确的部分。但这仅在两个表具有相同列数的情况下才有效。如果两个表的布局相似,也许您不需要两个表。

关于mysql - 在sql查询中从另一个表引用表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29576621/

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