SELECT
tMI.MI
FROM
tMI
LEFT JOIN
tCard ON tCard.CardNumber = tMI.MI
INNER JOIN
TMIN on TMIN.T_ID = tMI.MI
WHERE
tCard.CardNumber IS NULL
AND tMI.MI IS NOT NULL
我正在运行上面的代码而没有内连接它运行正常。但是一旦我添加了内部联接,就会说它无法转换。
数据是相同的,减去表格中的一些额外内容。
我有什么想法可以解决这个错误吗?
答案 0 :(得分:1)
检查 ON 条件中提到的所有列的数据类型是否相同。
如果您将CardNumber存储为varchar
(实际上是integer
值)而Mi存储为整数,请尝试修改您的on条件,如下所示。
ON CAST (tCard.CardNumber as INT) = tMI.MI
答案 1 :(得分:0)
我认为您的两个表列都是不同的数据类型,因此您使用以下内容 强制转换在sql中的功能
SELECT
cast(tMI.MI as varchar) as MI
FROM
tMI
LEFT JOIN
tCard ON tCard.CardNumber = tMI.MI
INNER JOIN
TMIN on TMIN.T_ID = tMI.MI
WHERE
tCard.CardNumber IS NULL
AND tMI.MI IS NOT NULL