Как объединить «левое соединение» с «или» оператором MySQL? - PullRequest
0 голосов
/ 28 июля 2011

У меня очень сложная задача, мне нужно взять из 3 разных таблиц и сравнить с несколькими условиями.

Это таблицы:

СЛЕДУЮЩАЯ: -Идентификатор пользователя, FollowID, дата

УВЕДОМЛЕНИЯ - идентификатор, TypeID, дата, FromID, ссылка

NOTICONNECT - NID, идентификатор пользователя, просмотренный

Позвольте мне объяснить ситуацию, это для системы уведомлений для социальной сети.Сначала я хочу получить общие уведомления, такие как: получение сообщения или комментариев.Во-вторых, я также хочу получать уведомления от тех пользователей, за которыми я слежу, когда они добавляют элемент (вроде того, как подписался твиттер и сообщают вам, когда они пишут в Твиттере).

Итак, логика, которую япридумали это:

Если Notifications.ID = NotiConnect.NID И NotiConnect.UserID = 'MyID'

ИЛИ

Follow.FollowID = Notifications.FromID AND Follow.UserID = 'MyID' AND Notification.Date> = Follow.Date

Так может кто-нибудь показать мне, как написать это в mysql и php?

Спасибо!

ОБНОВЛЕНИЕ

Оказывается, я все об этом ошибался.Я хотел определить, следил ли пользователь за другим пользователем и прошел ли он после даты начала.Это должно было предотвратить отображение любых уведомлений до «начала после даты», поскольку пользователь не следовал до этого.

Вывод : при добавлении строки уведомления в таблицу добавьтеnotiConnect для тех, кто подписан на пользователя.Это исключает любые возможные уведомления до следующего.

Надеюсь, это поможет кому-то еще.

...