gpt4 book ai didi

php - SQL SELECT 仅具有来自两个不同表的列的 MAX 值的行

转载 作者:可可西里 更新时间:2023-11-01 08:10:02 25 4
gpt4 key购买 nike

我的两张 table 设置如下:

表1

+------+---------+--------------------------------------+| id   | tail    | content                              |+------+---------+--------------------------------------+| 1    | abc     | ...                                  || 2    | def     | ...                                  || 3    | ghi     | ...                                  || 4    | def     | ...                                  || 5    | jkl     | ...                                  |+------+-------+----------------------------------------+

表2

+------+--------+---------------------------------------+| id   | tailID | value   |  others                     |+------+--------+---------------------------------------+| 1    | 2      | 412     |                             || 2    | 3      | 215     |                             || 1    | 2      | 571     |                             || 1    | 4      | 123     |                             |+------+--------+---------------------------------------+

我喜欢从这两个表中获取一行中匹配的 tail = tailID 的所有列,但不是具有相同尾部的重复行。

对于重复的尾部,只需要获取相同尾部的单行最大值。

我正在使用

SELECT table1.tail, table2.other_column FROM table1 INNER JOIN table2 on table1.id = table2.tailID WHERE table1.some_coloum = "a sepecific string" ORDER BY table2.value

但它会返回许多相同尾部的副本。

我只需要为具有表 2 的高值 VALUE 的重复 TAIL 设置单行。

最佳答案

DISTINCT 与 CROSS APPLY:

SELECT DISTINCT t1.tail,
t2.other_column,
t3.[value]
FROM table1 t1
CROSS APPLY (
SELECT tailid,
MAX([value]) as [value]
FROM table2
WHERE tailid = t1.id
GROUP BY tailid
) as t3
INNER JOIN table2 t2
ON t2.tailid = t3.tailid AND t3.[value] = t2.[value]
WHERE t1.some_coloum = "a sepecific string"

关于php - SQL SELECT 仅具有来自两个不同表的列的 MAX 值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38783118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com