gpt4 book ai didi

sql - 无法在 Postgres 中连接两个有限制的表

转载 作者:行者123 更新时间:2023-11-29 14:28:12 27 4
gpt4 key购买 nike

我有包含 col1、col2、col3 的表 A 和包含 col1 的表 B。

我想使用限制连接两个表

我想要一些类似的东西

select a.col1,a.col2,a.col3,b.col1 
from tableA a, tableB b limit 5 and a.col1 between 1 AND 10;

所以我在表b中有10条记录,在表a中有10条记录。我应该通过限制表 b 中的 5 条记录来获得总共 50 条记录

最佳答案

您的描述转换为CROSS JOIN:

SELECT a.col1, a.col2, a.col3, b.b_col1  -- unique column names
FROM tablea a
CROSS JOIN ( SELECT col1 AS b_col1 FROM tableb LIMIT 5 ) b;
-- WHERE a.col1 BETWEEN 1 AND 10; -- see below

... 和 LIMIT for tableb like a_horse 已经演示过。没有 ORDER BYLIMIT 返回任意行。结果可能会从一次执行更改为下一次执行。

tableb中选择随机行:

...
CROSS JOIN ( SELECT col1 AS b_col1 FROM tableb <b>ORDER BY random()</b> LIMIT 5) b;

如果您的 table 很大,请考虑:

当你...

have 10 records in ... table a

...添加的 WHERE 条件对于获得 50 行来说要么是多余的要么是错误的。

虽然 SQL 允许这样做,但拥有多个同名结果列几乎没有意义。有些客户会立即抛出错误。使用列别名使名称唯一。

关于sql - 无法在 Postgres 中连接两个有限制的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55346219/

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