Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Очень нужна помощ с запросом

67K
27 января 2011 года
virtex
3 / / 27.01.2011
mysql->

искал долго ничего невыяснил.

возник такой вопиющий случай:

table msgs -> id, autor, room, type, date_time

private -> id, msg_id, user_id

смысл в том что одно сообщение может быть адресовано сразу нескольким людям кому конкретно храниться в "private"


нужно выбрать сообщения из msgs проверяя таблицу private на наличие совпадения msgs.id=private.msg_id and user.id="извесное значение"

прошу помощи =)
37K
28 января 2011 года
freets
97 / / 15.10.2010
Цитата:
искал долго ничего невыяснил


сомневаюсь

 
Код:
select ms.*
from msgs ms
join private pr on pr.msg_id = ms.id and pr.user_id = "извесТное значение"
67K
28 января 2011 года
virtex
3 / / 27.01.2011
SELECT * FROM chat_msgs
INNER JOIN msgs_private_user
ON chat_msgs.id = msgs_private_user.msg_id AND msgs_private_user.private_user_id="id пользователя"

сильно сомневаюсь в подобном решении вопроса

+ дополнительно нужно сравнить результаты ещё с двумя взаимоисключающими таблицами


я в замешательстве ...


P.S я так и непонял как работает join точнее понял но неполностью

но freets однако ткнул пальцем куда копать =)
385
28 января 2011 года
SomewherSomehow
477 / / 25.07.2004
А чего сомневаетесь-то? Каков вопрос, таков ответ. Вы просили выбрать все сообщения адресованные юзеру "извесное значение". Предложенный запрос это делает. Если вы конечно о чем-то другом не умолчали...
67K
28 января 2011 года
virtex
3 / / 27.01.2011
сомниваюсь потомучто начитался видимо всякой бяки join'ом обычно в других целях пользуюсься (это не утверждение а сложившееся мнение за 2е суток изучения mysql )

ну кое о чём умолчал наверное но теперь это неважно =) вопрос был решён вот так:

(
SELECT `chat_msgs`. *
FROM `chat_msgs`
WHERE room = '1'
AND TYPE = 'pub'
AND `id` > '0'
)
UNION (

SELECT `chat_msgs`. *
FROM chat_msgs
INNER JOIN msgs_private_user ON chat_msgs.id = msgs_private_user.msg_id
AND `chat_msgs`.`id` > '0'
AND msgs_private_user.private_user_id =1
)
UNION (

SELECT `chat_msgs`. *
FROM chat_msgs
INNER JOIN msgs_to_user ON `chat_msgs`.`id` = msgs_to_user.msg_id
AND `chat_msgs`.`id` > '0'
AND `msgs_to_user`.`to_user_id` = '1'
)
ORDER BY id ASC


спасибо за посильную помощ =)
385
29 января 2011 года
SomewherSomehow
477 / / 25.07.2004
Жесть, однако!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог