gpt4 book ai didi

mysql - 在 SQL 的子查询中使用 limit-clause 和 parent-query-column

转载 作者:行者123 更新时间:2023-11-30 23:16:15 25 4
gpt4 key购买 nike

我想在子查询中使用 limit 子句。同时,子查询中的父查询列应该是可访问的。我正在使用 MySQL 并想执行如下操作:

select * from users u1 join (SELECT b1.userid from bids b1 where b1.userid=u1.userid limit 0,4) a1

当然这是无效的,因为无法通过这种方式访问​​ b1.authorid。

1)我想在应用 where 子句后限制结果,因此明确排除了以下内容:

select * from users u1 JOIN (SELECT b1.userid from bids b1 limit 0,4) a1 ON b1.userid=u1.userid

2) MySQL 不支持以下内容( LIMIT with IN/ANY/EVERY/SOME ):

select * from users u1 join bids b2 ON b2.userid IN (SELECT b1.userid from bids b1 where b1.userid=u1.userid limit 0,4)

有没有办法在 MySQL 中达到预期的结果?

SQLFiddle 链接: SQL query

让我用不同的方式表达查询的含义。假设输出 ANS,USER 是用户表,BID 是出价表。查询的表示形式如下:

USER=table(users);
While(USER has next raw) {
uraw=USER.nextraw;
BID=table(bids);
count=0;
While(BID has next raw) {
braw=BID.nextraw;
if(uraw.author < braw.id) {
if(count>=0) {
ANS.add(fields from uraw,fields from braw);
}
count=count+1;
}
if(count>=4) {
break;
}
}
}
return ANS;

最佳答案

是的,它支持连接查询中的限制。只需将 ON ON b1.authorid = a1.id 更改为其中 b1.authorid = a1.id

SELECT * FROM books b1 JOIN (SELECT * FROM authors LIMIT 0,4) a1 where b1.authorid = a1.id

关于mysql - 在 SQL 的子查询中使用 limit-clause 和 parent-query-column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17679102/

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