Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток, уважаемые ГУРУ!
У меня вот такой "чайниковский" вопрос. Есть две разные таблицы с комментариями к разным разделам сайта. Надо комментарии от разных разделов разместить одной "лентой". Для этого надо сделать выборку из двух таблиц и отсортировать все записи по времени.
Это я сделал вот таким запросом:
$sql="SELECT `comment_id`, `comment_date`, `comment_text` FROM `comment_table` UNION
SELECT `shop_comment_id`, `shop_comment_date_time`, `shop_comment_text` FROM `shop_comment_table` ORDER BY `comment_date` DESC";
Дополнительно надо по `comment_id` и `shop_comment_id` из других таблиц извлекать еще и другую информацию. Причем для `comment_id` - свои таблицы, а для `shop_comment_id` - свои.
В результате же выполнения запроса (текст которого приведен выше) все строки имеют одинаковый `comment_id`. Как мне отличить к какой таблице принадлежит строка результата запроса: к `comment_table` или к `shop_comment_table`?
Можно конечно делать дополнительный запрос по comment_id для
`comment_table` и `shop_comment_table` и определять наличие такой записи в каждой из таблиц, но это не совсем верно, так как номера могут пересекаться.
Может есть какой-то другой метод определения к какой таблице принадлежит строка (типа `shop`AS Type или по другому - я точно не знаю) ?
Какой синтаксис такого идентификатора и как потом обращаться к этому идентификатору?
Неактивен
Покажите в таком виде ваши таблицы с ихним содержанием.
table1
+----+---------+----------+
| id | user_id | order_id |
+----+---------+----------+
| 1 | 0 | 771296 |
| 2 | 0 | 885039 |
| 3 | 0 | 242590 |
| 4 | 0 | 242591 |
| 5 | 0 | 885040 |
+----+---------+----------+
А потом аналогично покажите то что хотите получить.
Неактивен
Всем спасибо! Заработало!
Сделал так:
SELECT `comment_id`, `comment_date`, `comment_text`, 'comment_table' AS tbname
FROM `comment_table`
UNION
SELECT `shop_comment_id`, `shop_comment_date_time`, `shop_comment_text`, 'shop_comment_table' AS tbname
FROM `shop_comment_table`
ORDER BY `comment_date` DESC
После добавления 'comment_table' AS tbname и 'shop_comment_table' AS tbname - в результирующем запросе появляется дополнительное поле tbname. Для строк из таблицы 'comment_table' поле tbname имеет значение 'comment_table', а для
таблицы 'shop_comment_table' соответственно - 'shop_comment_table'.
Имя поля tbname может быть любым и его значение ('comment_table' и 'shop_comment_table') то же могут быть любыми.
Еще раз всем спасибо!
Неактивен