MS Access - 连接GUID和String列

时间:2012-06-29 12:50:10

标签: ms-access guid inner-join

我在连接两个表时遇到问题,其中一个连接列是varchar而另一个是guid类型。

生成的SQL语句如下所示:

INSERT INTO adnVFD
SELECT dbo_adnVFD.*
FROM PRC INNER JOIN dbo_adnVFD ON PRC.PrcId = dbo_adnVFD.VarType;

我尝试使用PRC.PrcId函数转换StringFromGUID列,以便两列的类型相同。但没有成功。

有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:1)

如何使用派生表,例如:

SELECT  b.* 
FROM Table2 b
INNER JOIN (SELECT StringFromGUID([ID]) As Expr1 FROM Table1) a
ON b.Expr1=a.Expr1

答案 1 :(得分:0)

如果我

(1)创建一个包含两个字段的新表 - (a)ID, set as an autonumber, field size replication ID(又名Guid)和(b)ID2, text(255)

(2)添加一行,让它创建自动编号,然后将其从ID复制并粘贴到ID2

(3)SELECT Table1.ID, Table1.ID2 FROM Table1 where ID = ID2

我回到了我的排。请注意,粘贴的字符串确实包含大括号。您可能希望确保比较不会以某种方式丢弃它们。

然后我创建了第二个表,其中包含两个文本字段,两个文本字段(255),并且已加入:

SELECT Table1.ID, Table1.ID2, Table2.Field1
FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID;

哪个工作正常并把我带回了我的行。在我的情况下,我的钱是缺少括号。 我根本不需要使用StringFromGUID()