Родительские и дочерние сообщения в одном запросе MYSQLPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Родительские и дочерние сообщения в одном запросе MYSQL

Сообщение Anonymous »

Из приведенной выше таблицы я хотел извлечь список всех сообщений, где родительский_ид = 0, а sender_id или получатель_id равен моему идентификатору входа.
Table:Messages
id | parent_id | sender_id | receiver_id | subject | message | read

Это было легко, но я не мог понять, как посчитать все дочерние сообщения для сообщений WHERE Parent_id = 0.
Я попробовал это:
р>
$my_messages = mysql_query("
SELECT

messages.id, messages.sender_id, messages.receiver_id, messages.subject, messages.message, messages.minute,
messages.hour, messages.day, messages.month, messages.year, COUNT(*) as 'mcount'
FROM messages
LEFT JOIN messages AS mchild ON mchild.parent_id = messages.id
WHERE(messages.sender_id='$login_session' or messages.receiver_id='$login_session')
and messages.parent_id = '0'
ORDER BY messages.year DESC, messages.month DESC, messages.day DESC, messages.hour DESC, messages.minute DESC

");

Еще одна вещь, которую я не мог понять, заключалась в том, как подсчитать все дочерние и родительские сообщения для каждого родительского_id=0 WHERE read=1, если sender_id = $login_id или read=1, если Receiver_id = $ login_id
Вот пример:
Table:Messages
id | parent_id | sender_id | receiver_id | subject | message | read
1 | 0 | Paul | John | Test | Test | 0
2 | 0 | Paul | Chris | Test | Test | 0
3 | 1 | john | Paul | Test | Test | 0
4 | 1 | Paul | John | Test | Test | 1
5 | 1 | John | John | Test | Test | 0
6 | 0 | Paul | Jack | Test | Test | 0

Выход:
ID:1 - 4 messages (1 parent+ 3 children), $unread=1 because read = 1 for ID:4 which is a child for ID:1
ID:2 - 1 message
ID:6 - 1 message


Подробнее здесь: https://stackoverflow.com/questions/390 ... ysql-query
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»