1

这可能是一个愚蠢的问题,但我试图连接两列中的值,然后返回这些连接值在另一个集合中的行。

我的问题是,最好的方法是什么?我过去曾使用 IN 语句完成此操作,但如果这次我有很多值。

用我的比较值创建一个新表并使用某种关系语句获取结果会更好吗?下面有这样的吗?

SELECT Users.ID + Users.SubID AS UniqueID, TempVals.ID
FROM Users, TempVals
WHERE Users.ID + Users.SubID = TempVals.ID

谢谢!

4

1 回答 1

0

假设它是 MySQL 并且被连接的列的数据类型是字符串/字符类型,那么你所拥有的应该可以正常工作 - 不用担心,你应该能够转换它们。

另一种方式:

SELECT DISTINCT U.ID + U.SubID AS UniqueID
FROM Users as U
WHERE (U.ID + U.SubID) IN (
    SELECT DISTINCT T.ID
    FROM TempVals as T
)

此外,数据库的类型将决定连接的方法:

  • SQL 服务器:+
  • 甲骨文:CONCAT()
  • MySQL:连接()

参考:使用 IN 语句 - SQL

于 2013-04-30T15:15:28.390 回答