用于ExtJS网格的MySQL UNION ALL - 需要唯一的id列

时间:2011-04-05 21:55:08

标签: php mysql extjs

我正在使用ExtJS 3.0网格并使用MySQL从PHP生成数据。我已在idProperty列上设置了我的id网格。问题是我有两张表用于传入发票,一张用于具有相同列的传出发票。我想在这两个表上创建一个UNION ALL并将结果显示在ExtJS网格中。问题是这些表中有一些重复的id会导致ExtJS网格跳过它们。我知道我可以做简单的UNION来跳过重复但是我需要网格中的每一行,即使它们具有相同的id。实际上没有我可以涉及的独特数据。

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:5)

为什么不在SELECT数据时为id-column添加一些前缀:

(SELECT CONCAT('in-', id) AS id, ... FROM in_table)
UNION ALL
(SELECT CONCAT('out-', id) AS id, ... FROM out_table)

您必须确保阅读器配置中id - 字段的字段定义具有正确的类型(在这种情况下为autostring)。< / p>

如果您之后需要真实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

答案 1 :(得分:1)

我认为id在ExtJS中是可选的。如果将其关闭,网格将为每行计算自己的唯一ID。