gpt4 book ai didi

mysql - SQL从同一个表中选择两个最大行并与第三个表连接

转载 作者:可可西里 更新时间:2023-11-01 07:22:23 24 4
gpt4 key购买 nike

混合两个表:

项目

| item_id | user_id | data |
----------------------------
| 10 | 100 | A |
| 11 | 100 | C |
| 12 | 101 | E |
| 13 | 101 | G |

item_detail

| id | item_id | ignore | detail1 | detail2 | detail3 | detail4 |
-----------------------------------------------------------------
| 1 | 10 | 0 | h1 | h2 | h3 | h4 |
| 2 | 10 | 0 | g1 | g2 | g3 | g4 |
| 3 | 10 | 1 | f1 | f2 | f3 | f4 |
| 4 | 11 | 0 | e1 | e2 | e3 | e4 |
| 5 | 11 | 0 | d1 | d2 | d3 | d4 |
| 6 | 11 | 1 | c1 | c2 | c3 | c4 |
| 7 | 12 | 0 | b1 | b2 | b3 | b4 |
| 8 | 13 | 0 | a1 | a2 | a3 | a4 |

我需要通过 item_id 从 item_detail 的 MAX id 和 item_id 的 item_detail 的 MAX NON IGNORED ID 的 detail3,detail4 中找到 detail1,detail2,并与项目行一起显示。
预期结果:

| item_id | user_id | data | detail1 | detail2 | detail3 | detail4 |
--------------------------------------------------------------------
| 10 | 100 | A | f1 | f2 | g3 | g4 |
| 11 | 100 | C | c1 | c2 | d3 | d4 |
| 12 | 101 | E | b1 | b2 | b3 | b4 |
| 13 | 101 | G | a1 | a2 | a3 | a4 |

这是带有这些数据集的 SQLFiddle:http://sqlfiddle.com/#!2/52839
有接盘者吗?非常感谢您的意见。
谢谢!

最佳答案

怎么样...

SELECT i.* 
, x.detail last_detail
, y.detail last_non_ignored_detail
FROM items i
LEFT
JOIN
( SELECT a.*
FROM item_detail a
JOIN
( SELECT item_id
, MAX(id) max_id
FROM item_detail
GROUP
BY item_id
) b
ON b.item_id = a.item_id
AND b.max_id = a.id
) x
ON x.item_id = i.item_id
LEFT
JOIN
( SELECT a.*
FROM item_detail a
JOIN
( SELECT item_id
, MAX(id) max_id
FROM item_detail
WHERE ignored = 0
GROUP
BY item_id
) b
ON b.item_id = a.item_id
AND b.max_id = a.id
) y
ON y.item_id = i.item_id;

...或类似的东西。

哦,傻我...

SELECT i.*
, MAX(d.detail) x
, MAX(CASE WHEN d.ignored = 0 THEN d.detail END) y
FROM items i
JOIN item_detail d
ON d.item_id = i.item_id
GROUP
BY item_id;

注意IGNORE是保留字,所以我改了。 (我也冒昧地更改了戈登的答案!)

关于mysql - SQL从同一个表中选择两个最大行并与第三个表连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25263090/

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