Как включить мой идентификатор в идентификаторы из операторов SELECT и JOIN? - PullRequest
2 голосов
/ 02 сентября 2011

Я полностью озадачен этим, и логика, лежащая в его основе, неверна, поэтому я снова обращаюсь к экспертам.

Вот мои таблицы:

|Table.Follow |

|OwnerID |UserID |

|Table.Users |

|ID |Имя пользователя |

|Table.Post |

|ID |OwnerID |Сообщение |Дата |

Я пытаюсь получить сообщение от пользователей, на которых я подписан, включая информацию о пользователе.Итак, логика, которую я придумала ...

Follow.OwnerID = ME AND Follow.UserID = Users.ID = Post.OwnerID

Но также как быЯ включаю свои собственные сообщения, которые там находятся?

Вот мой SQL:

SELECT * FROM Table.Post
JOIN Table.Users ON Table.Post.OwnerID = Table.Users.ID
JOIN Table.Follow ON Table.Post.OwnerID = Table.Follow.UserID
AND Table.Follow.OwnerID = '$MyID'
ORDER BY Table.Post.Date DESC

Но это также не дает мне мои сообщения, это только обеспечивает сообщения пользователейЯ следую.Проблема в том, что я использую идентификаторы, которые я получаю из Таблицы. Следите, и, очевидно, я не могу следить за собой.Я сделал это, но это не сработало:

SELECT * FROM Table.Post
JOIN Table.Users ON Table.Post.OwnerID = Table.Users.ID
JOIN Table.Follow ON Table.Post.OwnerID = Table.Follow.UserID
AND (Table.Follow.OwnerID = '$MyID' OR Table.Post.OwnerID = '$MyID')
ORDER BY Table.Post.Date DESC

Есть предложения?

1 Ответ

2 голосов
/ 02 сентября 2011
SELECT *
    FROM Table.Post p
        LEFT JOIN Table.Follow f
            ON p.OwnerID = f.UserID
        INNER JOIN Table.Users u
            ON p.OwnerID = u.ID
    WHERE p.OwnerID = '$MyID'
        OR f.OwnerID = '$MyID'
    ORDER BY p.Date DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...