gpt4 book ai didi

mysql - 使用 MySQL 中的不同 View 从搜索和导出中获取相同的数据?

转载 作者:行者123 更新时间:2023-11-30 01:18:47 25 4
gpt4 key购买 nike

我的数据库中有两个表。一张表为主表,另一张表为子表。当用户进行搜索时,他们仅查询主表中的记录,然后单击加号时,它会搜索子记录。查询是这样的:

SELECT * FROM TableA
GROUP BY id
LIMIT 0,10;

如果用户选择适用于子表的搜索条件,我仅内部联接到子表(TableB),例如:

SELECT * FROM TableA a
INNER JOIN TableB b on b.MasterId = a.id
GROUP BY a.id
LIMIT 0, 10;

以上所有工作正常,除了当我必须导出时,当用户导出时,它使用不同的数据 View ,没有主级别和子级别,它是一个扁平的结果,所以例如,当我在搜索上执行 LIMIT 0,10 ,它会带回 10 个主记录,但如果我有 1 个主记录和 10 个子记录,则导出只会带回同时包含主信息和子信息的 10 条记录,但它只会是搜索中的第一个主记录,它甚至可能不是同一条记录,因为我正在查询 View 。导出查询可能是:

SELECT * FROM TableC
LIMIT 0,10;

TableC 基本上是 TableATableB 中扁平化数据的 View ,但由于它是扁平化的,因此应用了 LIMIT ,不正确应用。

有办法解决这个问题吗?有什么解决办法吗?

最佳答案

当您使用limit时,您应该包含order by。 MySQL 保证group by 之后的排序。所以,尝试这样的事情:

SELECT *
FROM TableC
ORDER BY aid
LIMIT 0,10;

请注意:这在 MySQL 中有效,因为可以保证 group by 之后的排序。这不是 ANSI 标准,不适用于其他数据库。

关于mysql - 使用 MySQL 中的不同 View 从搜索和导出中获取相同的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787631/

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