+----+----------+-------------+-----------+---------------------+---------+---------------------------+
| id | action | object_type | object_id | created_at | user_id | object_title |
+----+----------+-------------+-----------+---------------------+---------+---------------------------+
| 1 | shared | 0 | 1 | 2016-04-22 06:13:16 | 1 | 5 highest buildings |
| 2 | liked | 0 | 1 | 2016-04-22 06:15:02 | 1 | 5 highest buildings |
| 3 | liked | 0 | 1 | 2016-05-21 19:02:18 | 2 | 5 highest buildings |
| 4 | liked | 1 | 3 | 2016-05-21 19:02:21 | 3 | 5 largest bridges |
+----+----------+-------------+-----------+---------------------+---------+---------------------------+
Я пытаюсь создать нечто похожее на новостной канал Facebook. Я имею в виду, когда несколько пользователей в моем списке друзей похожи на один и тот же пост, мы покажем только один результат в новостном канале, в котором говорится, что friend1, friend2, frnd3 и т. Д., Как этот пост xyz.SQL-группа по нескольким столбцам - MySQL
Из этой таблицы я хотел бы сгруппировать по этим трем столбцам (action
, object_type
, object_id
) и список пользователей для этого объекта.
SELECT *
FROM mytable
GROUP BY action, object_type, object_id
Но это дало мне некоторые странные результаты, и я ожидал список пользователей. Я действительно не знаю, как это сделать в этом запросе.
Любая помощь или руководство будут оценены.
Вы можете попробовать это решение для: 'Выберите действие, object_type, object_id, граф (user_id) в качестве пользователя от туЬаЫх GROUP BY действий, object_type, object_id' –
Добавить несколько строк данных образца, а затем покажем нам ожидаемый результат! – jarlh
используйте GROUP_CONCAT, чтобы получить список сгруппированных строк. – an33sh