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

标签 php mysql extjs

我正在使用 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 字段的字段定义具有正确的类型(autostring 在这种情况下)。

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

相关文章:

php - 根据数据库 pdo 检查用户名

php - 如何从网站下载 html 的副本?

php - 发送带有 php 附件的电子邮件

php - 在 DOM 属性的文档中查找文本偏移量

php - PDO 插入值

javascript - Ext.Window 显示方法在 extjs 3.4 中当前打开的窗口后面打开窗口

mysql - 如果第二个表多次出现,如何连接表并获取第一个表的总和

php - ios将数据存入MySQL数据库简单

javascript - 在实际上传之前显示图像

function - Ext.XTemplate 中的内联变量