Veselushko
Member
Здравейте, програмиста, който ми пише един сайт има проблем със SQL зявка, а откакто го познавам досега не е имал проблеми, така че в случая е нещо сериозно ако можете да помогнете, много ще се радвам
Благодаря ви предварително
Здравейте
имам следната таблица
Код:mysql> describe messages; +-----------+---------------------+------+-----+-------------------+------------ | Field | Type | Null | Key | Default | Extra +-----------+---------------------+------+-----+-------------------+------------ | id | int(10) unsigned | NO | PRI | NULL | auto_increm | user_id | int(10) unsigned | NO | | NULL | | target_id | int(10) unsigned | NO | | NULL | | text | text | NO | | NULL | | status | tinyint(3) unsigned | NO | | NULL | | hide | tinyint(3) unsigned | NO | | NULL | | ts | timestamp | NO | | CURRENT_TIMESTAMP | | ip | int(11) | NO | | NULL | +-----------+---------------------+------+-----+-------------------+------------
става въпрос за лични съобщения между потребителите в 1 уебсайт.
Опитвам се да измисля заявка, която да изведе по 1 ред за всеки потребител, с който Х си е писал (да кажем че ИД-то на този потребител е 2), в който да е последното съобщение с въпросния човек, ИД-то му (вече мога да си напиша join, с който да извадя потр.име и т.н.), датата на съответното съобщение и ИП-то
Уловката е, че съобщението трябва да е последното писано с този човек, независимо дали е изпратено или получено от гледна точка на потребителя. Примерно Гошо пише на Пешо, след това Пешо му отговаря. В кутиите и на двмата трябва да излиза второто съобщение, само името на кореспондента да е различно. Вече при кликване на името се отваря цялата дискусия между двмата потребители, но това отдавна съм го написал вече...
В общи линии - като фейсбук, но без отделни разговори, а всички съобщения с дадения потребител формират 1 разговор.
Ето докъде стигнах до момента....
Код:(select `id`, `user_id`, `target_id`, `text`, `status`, `ts`, `ip` from messages where user_id in ((select user_id from messages where target_id = 2) union (select target_id from messages where user_id = 2)) and target_id = 2) union (select `id`, `target_id`, `user_id`, `text`, `status`, `ts`, `ip` from messages where target_id in ((select user_id from messages where target_id = 2) union (select target_id from messages where user_id = 2)) and user_id = 2)
Код:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union (select target_id from messages where user_id = 2))) union (select `id`, `' at line 1
Благодаря ви предварително