gpt4 book ai didi

mysql - 使用子查询保存查询结果的最佳方法是什么?

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

我想显示用户喜欢的所有相似产品对,因此我想到创建一个 VIEW 以便动态更新表格。

我收到消息,无法使用子查询创建 View 。我也想过创建一个临时表,但效果不佳。

当存在 VIEW 限制时,如何将查询结果保存在表中?

这是我的查询:

SELECT DISTINCT c.item1
, c.item2
, count(*) as times_liked_together
FROM
( SELECT a.product_id as item1
, b.product_id as item2
FROM items a
join items b
ON a.wishlist_id = b.wishlist_id
AND a.product_id != b.product_id
) c
GROUP
BY c.item1
, c.item2

最佳答案

MySQL 对 View 有此限制。在您的情况下,您不需要子查询:

SELECT i1.product_id as item1, i2.product_id as liked_with,
COUNT(*) as num_liked_together
FROM items i1 INNER JOIN
items i2
ON i1.wishlist_id = i2.wishlist_id AND
i1.product_id < i2.product_id
GROUP BY item1, item2;

请注意,我更改了 <>< 。我认为没有理由在结果集中同时包含 (a, b) 和 (b, a)。如果这样做,请更改 <返回<> .

此外,SELECT DISTINCT几乎从不与 GROUP BY 一起使用.

关于mysql - 使用子查询保存查询结果的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54616198/

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