1

好的,我会在这里尽我所能解释这一点。

我有多个表要通过某些参考点相交的 JOIN 进行连接。

在其中一张表中,我需要将多行的 2 个或更多结果带回单独的列。

在下图中(我希望能更好地解释它),T2.ColA 连接到 T3.ColA 并且 T1,ColA 连接到 T2.ColB。

在T1的ColC中,有一个最新的记录。这些是唯一需要的结果。请注意,例如 ColC 可能是第 1 行和第 2 行之间的不同日期。但它需要基于 ColA 的每个 ColB 的最新版本。

但是在 T1 中,有两行需要 Col B 在单独的列中返回结果。

数据库示例

顺便说一句,这只是一个条目 - 将有数千行需要返回结果 - 而不仅仅是 1。

如果您需要更多信息,请告诉我。

4

2 回答 2

0

试试这个查询

select t1.cola,t2.cola,t1.colb,t2.colb,t3.colb FROM table2 t2 INNER JOIN table1 t1 ON t1.cola = t2.colb INNER JOIN table3 ON t3.cola =t2.cola
于 2013-04-30T06:28:29.383 回答
0

可能这可以解决您的查询..

SELECT T1.COLA, T1.COLB, T2.COLA, T2.COLA
FROM 
TABLE1 T1 INNER JOIN TABLE2 T2
INNER JOIN TABLE3 T3
WHERE
T1.COLC = (
SELECT MAX(T4.COLC) FROM TABLE1 T4 WHERE T4.COLA = T1.COLA
)

** 但是正如您在挖掘中指定的那样,不可能在一行中显示 1123、3211。它必须在两个不同的行中,因为它的变化取决于行数。您可以使用前端应用程序根据需要进行修改。

于 2013-04-30T06:55:16.810 回答