gpt4 book ai didi

mysql - 在不使用子查询或发送额外查询的情况下获取所有找到的行的计数?

转载 作者:行者123 更新时间:2023-11-29 11:01:09 25 4
gpt4 key购买 nike

这是我更大的主查询的子查询:

SELECT DISTINCT p1.item_id
FROM pages_likes AS p1
JOIN pages_likes AS p2 ON p1.item_id = p2.item_id AND p1.status = p2.status
WHERE p1.uid = 855 AND p2.uid = 1091
GROUP BY p1.id

这给了我这个结果,例如:

item_id

32

38

73

所以我需要获得的预期计数值为 3。

我需要知道我是否可以在不使用子查询(不使用外部SUM())并且不发送额外的mysql-的情况下获取这些找到的行查询(不使用SELECT FOUND_ROWS())。

这是因为我无法将主列的值/列放置在主查询中所需的子查询子查询中。那么,有什么方法可以让这个查询通过单个查询计算所有找到的行吗?

我的主要查询是这样的:

SELECT SQL_CALC_FOUND_ROWS DISTINCT l1.item_id, l1.uid, l2.id, l2.uid, u.prename, l1.item_id, l2.item_id,
(SELECT SUM(cnt) FROM
(
SELECT DISTINCT p1.item_id
FROM pages_likes AS p1
JOIN pages_likes AS p2 ON p1.item_id = p2.item_id AND p1.status = p2.status
WHERE p1.uid = 855 AND p2.uid = 1091
GROUP BY p1.id
) AS t) AS total

FROM pages_likes l1
JOIN users u on u.id = l1.uid
JOIN pages_likes l2 on l1.item_id = l2.item_id
JOIN users_likes ul on l1.uid = ul.uid
WHERE ul.date >= DATE_SUB(NOW(),INTERVAL 1 WEEK)
AND l1.uid != 1091 AND l2.uid = 1091
AND (l1.status = 1 AND l2.status = 1)
AND u.gender = 2
GROUP BY l1.uid
ORDER BY
total DESC,
l1.uid DESC,
l1.date DESC

我的目标是在主查询的子查询中使用 l1.uid 而不是 855

表结构:http://sqlfiddle.com/#!9/b1334

最佳答案

如果我理解正确,只需使用这个子查询:

(SELECT COUNT(DISTINCT p1.item_id)
FROM pages_likes p1 JOIN
pages_likes p2
ON p1.item_id = p2.item_id AND p1.status = p2.status
WHERE p1.uid = 855 AND p2.uid = 1091
)

关于mysql - 在不使用子查询或发送额外查询的情况下获取所有找到的行的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42224900/

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