gpt4 book ai didi

mysql - 一行匹配所有

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:05 24 4
gpt4 key购买 nike

所以我有两个表的情况。一个是基表(在本例中称为 _Keys),具有唯一的主键。然后还有另一个表,其中包含 _Keys 中每个 id 的多行数据(第二个表是 Extra)。

我需要为 Extra 的 _Keys 中的每个主键选择最大值。我制作了一个 SQLFiddle 来模拟问题 here .

这是我目前正在使用的查询,但问题是它只会为 Extra 表选择一个值,而不是每行选择一个值。

Select * from _Keys
LEFT JOIN
(Select * from Extra ORDER BY value2 DESC LIMIT 1) as e
ON e.id = _Keys.id;

对于我的示例 SQL Fiddle,我使用了这个数据库模式:

CREATE TABLE _Keys(id int, value int);
INSERT INTO _Keys (id, value) VALUES (1, 5),(2, 3),(3, 4);

CREATE TABLE Extra(id int, value2 int);
INSERT INTO Extra (id, value2) VALUES (1, 3),(1, 1),(2, 4),(2, 6),(3, 3),(3, 5);

基本上我的结果是here .只有 _Keys 表的第一行从第二个表中获取数据。

在MySQL中,如何实现为_Keys中的每一行从Extras中选择一行?

最佳答案

我相信我明白你想做什么,但我不确定。

  • 由于 LIMIT,您得到了 NULL 值,它只返回第一行。您还需要使用 GROUP BY
  • 要获得最大值,您可以使用 MAX

试试这个。

SELECT * from _Keys
LEFT JOIN
(SELECT id, MAX(value2) AS value2 FROM Extra GROUP BY id) as e
ON e.id = _Keys.id;

关于mysql - 一行匹配所有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29813874/

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