我有一个,目前,共有6个表是这个问题的一部分。主表tableA包含其他5个表中所有条目具有共同性的列。其他5个表格有更详细地定义表格A中的条目的列。来自字段定义表的SQL内部联接?
例如:
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)中选择所有字段。
我所目前做,没有测试添加一个字段,表A,所以它看起来是这样的:
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;有没有更好的方式来做到这一点?
感谢您的帮助。
如果总是填充列,那么内部连接就可以了 – 2010-04-15 02:01:02