在下面给出的结果集中,有 2 个唯一用户 (id),并且查询中可能会出现更多此类用户:
这是多连接查询:
select
id, name, col1Code, col2Code, col2Value
from
users_table UT
join
col1_table C1T on UT.id = C1T.user_ID_FK
join
col2_table C2T on UT.id = C2T.user_ID_FK
order by
UT.id
limit 10
假设此查询中有 50 个此类用户。如果我出于分页目的应用 10 个限制,则不会获得 10 个用户,而只会获得前 10 行,其中可能只有 1 或 2 个用户数据。
问题1:如何根据特定列设置限制?
问题 2:使用 SQL 限制子句是分页的正确方法吗?对于提高最终用户的响应时间也是如此吗?如果不是,那么在这种情况下还可以使用什么?
最佳答案
Q1:您可以使用子查询来获取不同的用户。
select id, name, col1Code, col2Code, col2Value
from
(select distinct id, name from users_table) UT
join col1_table C1T on UT.id = C1T.user_ID_FK
join col2_table C2T on UT.id = C2T.user_ID_FK
order by UT.id limit 10
问题2:是的
关于mysql - 对特定列应用 SQL 限制,而不是对完整结果集应用 SQL 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955007/