MySQL UNION ALL для ExtJS grid - нужен уникальный столбец id - PullRequest
2 голосов
/ 06 апреля 2011

Я использую сетку ExtJS 3.0 и генерирую данные из PHP, используя MySQL.Я настроил idProperty сетки в столбце id.Проблема в том, что у меня есть 2 таблицы для входящих счетов и одна для исходящих счетов с одинаковыми столбцами.Я хочу сделать UNION ALL на этих 2 таблицах и показать результат в сетке ExtJS.Проблема в том, что из этих таблиц появляются некоторые идентификаторы, которые заставляют сетку ExtJS пропускать их строки.Я знаю, что могу сделать простой UNION, чтобы пропустить дубликаты, но мне нужны все строки в сетке, даже если они имеют одинаковый идентификатор.На самом деле нет никаких конкретных данных, к которым я могу относиться.

Есть идеи?Спасибо.

Ответы [ 2 ]

5 голосов
/ 06 апреля 2011

Почему бы не добавить префикс в столбец id при SELECT вводе данных:

(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 сейчас.

1 голос
/ 06 апреля 2011

Я считаю, что id является необязательным в ExtJS. Если вы не включите его, сетка будет рассчитывать свой собственный уникальный идентификатор для каждой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...