Mysql - Как выбрать записи из одной таблицы на основе того, подписан ли я на них из другой таблицы? - PullRequest
0 голосов
/ 20 марта 2011

За свою жизнь я не могу обернуться вокруг этой простой проблемы с MySQL. (мой мозг жареный, почти 16 часов прямого кодирования).

У меня, по сути, есть таблицы записей и подписок

запись

  • publisherId
  • запись

подписки

  • MyId
  • friendId

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

Мне бы очень хотелось, если бы это было возможно сделать и с синтаксисом activerecord codeigniter, но если это невозможно, то такой простой синтаксис mysql был бы очень важен.

Какую концепцию я здесь упускаю? Это простое объединение или это обход всех людей, на которых я подписан, и поиск записей, которые они публикуют?

Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 20 марта 2011

Вы можете использовать JOIN. В простом SQL:

SELECT e.publisherId, e.entry
FROM entries e
JOIN subscriptions s
ON s.friendId = e.publisherId
WHERE s.myId = 1234
0 голосов
/ 20 марта 2011

дайте мне знать, если это работает, потому что я все еще изучаю записи Active Query (объединение смущает меня: P)

$this->db->select('entries.publisherId,entries.entry');
$this->db->from('entries');
$this->db->join('comments', 'subscriptions.friendId = entries.publisherId');
$this->db->where('subscriptions.myId', 1234); 
$query = $this->db->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...