使用mysql中不同表的值填充外键列

时间:2013-04-16 14:41:54

标签: mysql sql database

我想我在这里有点过头了 - 非常感谢任何帮助! :)

我在两个mysql数据库中有两个表:

Database A.Table A
id (int)
name (varchar)

Database B.Table B
id (int)
name (varchar)
foreign key1 (int)
foreign key2 (int)

我想创建一个像SELECT * FROM这样的MySQL查询,这样结果仍然是正确的,即使稍后添加了一些额外的列。但是,我希望表B中的外键替换为表A中相应的varchar名称。两个外键都指向同一个表,但可能不同,因为它们代表一个人所在的位置以及他所属的位置。 / p>

我试过这个:

SELECT * FROM tblA RIGHT JOIN tblB ON tblA.id = tblB.foreignkey1

但它在结果集中添加了另一列,这不是我想要实现的。

当查询tbl.B之类的SELECT * FROM tbl.B(添加魔法我在这里寻找)时,最终结果应该是这样的:

*--------*----------*--------------------------*---------------------------*
|tblB.id | tblB.name| foreign value1 from tbl.A | foreign value2 from tbl.A|
*--------*----------*--------------------------*---------------------------*

1 个答案:

答案 0 :(得分:1)

你可以这样做:

SELECT tblB.id, tblB.name, tblA.* -- all fields in tblA
FROM tblA RIGHT JOIN tblB ON tblA.id = tblB.foreignkey1

......但这几乎是我所能想到的。不幸的是,您必须使用SELECT *SELECT [each and every column],没有其他选择。