gpt4 book ai didi

条件语句中的 MySQL 子查询

转载 作者:行者123 更新时间:2023-11-28 23:14:44 26 4
gpt4 key购买 nike

我在使用子查询作为条件时遇到了一个小问题。

这是我试图找出的代码:

  SELECT `page`  
FROM `mdl_tool_devcourse`
WHERE `page` IN
(SELECT `objectid`
FROM `mdl_logstore_standard_log`
WHERE `action` = 'viewed' AND `objecttable` = 'wiki_pages' AND `userid` = 2)

AND `ref` IN

(SELECT `objectid`
FROM `mdl_logstore_standard_log`
WHERE `action` = 'viewed' AND `objecttable` = 'wiki_pages' AND `userid` = 2)

所以在我的 WHERE 语句中,我希望 pageref 都在我的子查询的结果中。为了实现这一点,除了运行子查询两次之外,我找不到任何其他方法。是否有另一种选择让子查询只执行一次?

最佳答案

子查询非常慢。尝试运行该查询:

SELECT
`mdl_tool_devcourse`.`page`
FROM `mdl_tool_devcourse`
INNER JOIN `mdl_logstore_standard_log` ON `mdl_logstore_standard_log`.`action` = 'viewed'
AND `mdl_logstore_standard_log`.`objecttable` = 'wiki_pages'
AND `mdl_logstore_standard_log`.`userid` = 2
AND `mdl_tool_devcourse`.`page` = `mdl_logstore_standard_log`.`objectid`
AND `mdl_tool_devcourse`.`page` = `mdl_logstore_standard_log`.`ref`

关于条件语句中的 MySQL 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44387640/

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