Приветствую!
id | date | msg
-----------------------------
1 | 12.08.2011 | спасибо
2 | 13.10.2011 | благодарность
id | date | msg
-----------------------------
1 | 21.12.2011 | вопрос
2 | 13.11.2011 | предложение
3 | 28.12.2011 | замечание
Нужно составить запрос, выводящий их в следующем порядке в 1 таблице:
date | msg
-----------------------------
28.12.2011 | замечание
21.12.2011 | вопрос
13.11.2011 | предложение
13.10.2011 | благодарность
12.08.2011 | спасибо
Прошу помощи!
Подскажите где почитать можно про такие запросы.
Что-то не совсем понимаю зачем хранить однотипные несвязанные данные в разных таблицах..
Для данных с формы важен счетчик, т.е. каждой записи присвоен свой идентификационный номер, и этот счетчик не должен "расходоваться" на данные из другого источника. Поэтому и создала вторую таблицу.
Вроде так работает:
(
SELECT `table1`.`date` AS `date1` , `table1`.`msg` AS `msg1`
FROM questionsandanswers
)
UNION (
SELECT `table2`.`date` AS `date2` , `table2`.`msg` AS `msg2`
FROM questionsandthanks
)
ORDER BY date1 DESC
Получилось так:
date1 | msg1
-----------------------------
28.12.2011 | замечание
21.12.2011 | вопрос
13.11.2011 | предложение
13.10.2011 | благодарность
12.08.2011 | спасибо
У меня есть две связанные таблицы, связь один ко многим, нужно одновременно добавлять данные в эти таблицы.
INNER JOIN у меня отлично работает на локалка (тип таблиц InnoDB), а вот на хостинге таблицы типа MyIsam, и там эта команда вроде не поддерживается. Какую функцию следует применить? Тоже Union?
id | date | msg | type
где type - это bool поле, содержащее либо 1 (обратная связь) либо 0 (другой источник).
SELECT COUNT(`id`) WHERE `type` = 1
Вернет вам "счетчик" для обратной связи.
Если требуется для всех записей последовательный уникальный id, то 2 дополнительных поля: id_feedback, id_other, куда вбивается MAX(`id_feedback`)+1 и NULL, если это обратная связь, либо NULL и MAX(`id_other`)+1, если другой источник.
Опять же не понимаю - зачем нужен последовательный id
UNION тяжелая операция, не рекомендую ее использовать вообще.
"Одновременно" - это как? Вы хотите одним INSERT IGNORE вставлять данные в разные таблицы?
одним запросом добавить данные в обе таблицы
т.е. нормально будет сделать 2 независимых запроса?
для инсертов / апдейтов да, на каждую таблицу по запросу.