gpt4 book ai didi

sql - MySQL:将多个查询的记录收集到一个结果中

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

我希望创建一个 SQL 查询来收集多个查询的结果。

我想应用随机排序顺序并返回有限数量的记录。

所有查询都将返回相同的字段(本例中为“RefCode”),但具有不同的 FROM 和 WHERE 语句。

请参阅下面的一些可能查询的示例:

SELECT PD.RefCode
FROM ((PD
INNER JOIN P ON PD.PrdFK = P.PrdID)
INNER JOIN PR ON PR.ChildCatFK = P.ChildCatFK)
WHERE PR.ParentCatFK = 6

SELECT PD.RefCode
FROM (PR
INNER JOIN PD ON PR.PrdDetFK = PD.PrdDetID)
WHERE PR.ChildCatFK = 14

我尝试使用各种技术(即UNION)来做到这一点,但未能找到正确的方法。

记录的随机排序和限制(使用RAND()LIMIT 0,10)不是必需的,但如果有的话那就太好了。

这可能吗,还是我需要单独创建每个查询?

最佳答案

使用 UNION 组合查询。将它们包装在子查询中,以便您可以对结果进行 ORDER BY 和 LIMIT:

SELECT RefCode
FROM (
SELECT PD.RefCode
FROM PD
INNER JOIN P ON PD.PrdFK = P.PrdID
INNER JOIN PR ON PR.ChildCatFK = P.ChildCatFK
WHERE PR.ParentCatFK = 6

UNION ALL

SELECT PD.RefCode
FROM PR
INNER JOIN PD ON PR.PrdDetFK = PD.PrdDetID
WHERE PR.ChildCatFK = 14

) subquery
ORDER BY RAND()
LIMIT 10

关于sql - MySQL:将多个查询的记录收集到一个结果中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/906102/

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