我正在使用 ExtJS 3.0 网格并使用 MySQL 从 PHP 生成数据。我已在 id
列上设置了网格的 idProperty
。问题是我有 2 个用于传入发票的表和一个用于具有相同列的传出发票的表。我想对这两个表进行 UNION ALL 并将结果显示到 ExtJS 网格中。问题是这些表中出现了一些重复的 id,导致 ExtJS 网格跳过它们的行。我知道我可以做简单的 UNION 来跳过重复项,但我需要网格中的每一行,即使它们具有相同的 id。实际上没有任何与我相关的明确数据。
有什么想法吗?谢谢。
最佳答案
为什么在SELECT
数据时不向 id 列添加一些前缀:
(SELECT CONCAT('in-', id) AS id, ... FROM in_table)
UNION ALL
(SELECT CONCAT('out-', id) AS id, ... FROM out_table)
您必须确保阅读器配置中 id
字段的字段定义具有正确的类型(auto
或 string
在这种情况下)。
如果您之后需要真实的id
,请更改查询以选择真实的id
:
(SELECT CONCAT('in-', id) AS gid, id, 'in' AS type ... FROM in_table)
UNION ALL
(SELECT CONCAT('out-', id) AS gid, id, 'out' AS type, ... FROM out_table)
您的 idProperty
现在将是 gid
。
关于php - ExtJS 网格的 MySQL UNION ALL - 需要唯一的 id 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5559021/