【发布时间】:2010-04-14 22:57:02
【问题描述】:
目前,我总共有 6 个表是这个问题的一部分。主表 tableA 包含其他 5 个表中的所有条目共有的列。其他 5 个表的列更详细地定义了 tableA 中的条目。
例如:
TableA
ID|Name|Volume|Weight|Description
--+----+------+------+-----------
0 |T1 |0.4 |0.1 |Random text
1 |R1 |5.3 |25 |Random text
TableB
ID|Color|Shape
--+-----+------
0 |Blue |Sphere
TableC
ID|Direction|Velocity
--+---------+--------
1 |North |3.4
(列名只是示例,不要理解它们的含义......)
表 A 中的 ID 字段对所有其他表都是唯一的(即 TableB 将具有 0,但 TableC 不会,任何其他表也不会)。
我想做的是从 TableA 中选择所有字段以及相应的(根据 ID 字段)明细表 (TableB-F)。
我目前所做但未测试的是向 TableA 添加了一个字段,因此它看起来像这样:
TableA
ID|Name|Volume|Weight|Description|Table
--+----+------+------+-----------+------
0 |T1 |0.4 |0.1 |Random text|TableB
1 |R1 |5.3 |25 |Random text|TableC
我对此有几个问题:
对 TableA 做这样的事情是否合适,因为外键在这种情况下不起作用,因为它们都需要链接到不同的表?
-
如果这是正确的,SQL 查询是否会像这样(ID 将由用户输入)?
SELECT *
FROM TableA AS a
INNER JOIN a.Table AS t ON a.ID = ID; 有更好的方法吗?
感谢您的帮助。
【问题讨论】:
标签: sql