Здравствуйте! У меня есть такая таблица БД:
CREATE TABLE `dialogs` (
`id` int(255) AUTO_INCREMENT,
`to` int(255),
`from` int(255),
`message` text,
`date` varchar(255),
`read` int(1) default '0',
PRIMARY KEY (`id`)
)
К сожалению, проектировал ее не я и изменять что либо в MySQL я не могу.
Например, у меня в таблице содержатся такие записи:
+----+------+------+-----------+------------+------+
| id | to | from | message | date | read |
+----+------+------+-----------+------------+------+
| 1 | 1 | 2 | Hello =) | 1379616725 | 0 |
| 2 | 2 | 1 | World. | 1379616743 | 1 |
| 3 | 1 | 2 | Push me)) | 1379616749 | 0 |
| 4 | 2 | 1 | World. | 1379616743 | 1 |
| 5 | 5 | 6 | World. | 1379616743 | 1 |
| 6 | 1 | 5 | World. | 1379616743 | 1 |
+----+------+------+-----------+------------+------+
Мне нужно сделать выборку, чтобы я получил все поля, где
`to`='2'
. Загвоздка в том, что поле from должно быть уникальным (т.е. мне не нужно получать всю переписку между 1 и 2 пользователем, а достаточно 1 их сообщения).
Прошу прощения за сумбурное объяснение задачи.
После выборки я должен получить что-то типа:
+----+------+------+-----------+------------+------+
| id | to | from | message | date | read |
+----+------+------+-----------+------------+------+
| 1 | 1 | 2 | Hello =) | 1379616725 | 0 |
| 6 | 1 | 5 | World. | 1379616743 | 1 |
+----+------+------+-----------+------------+------+
Для выборки, где
`to`='1'
И
+----+------+------+-----------+------------+------+
| id | to | from | message | date | read |
+----+------+------+-----------+------------+------+
| 2 | 2 | 1 | World. | 1379616743 | 1 |
+----+------+------+-----------+------------+------+
Для выборки, где
`to`='2'
Можно, конечно, загрузить все, а затем пройтись циклом и убрать лишнее, но, я думаю, это не самый рациональный способ :)