Всем добрейшего времени суток!
Мучаюсь уже неделю, ничего похожего ни на хабре ни в гугле не нашел.
Этот запрос для формирования новостной ленты из 2х таблиц, сами таблицы очень похожи, разница только в названии одного из полей, формируется новостная лента из постов друзей и постов групп на которые юзер подписан.
Таблицы у меня примерно такие:
таблица
post
----------------------------------------------------------------------------------------
id | user_id_posted | user_id | type | date | content | и тд...
-----------------------------------------------------------------------------------------
таблица
grouppost
----------------------------------------------------------------------------------------
id | user_id_posted | group_id | type | date | content | и тд...
-----------------------------------------------------------------------------------------
Собственно суть...
Нужно сделать запрос на выборку из базы, я грубо говоря разобью запрос на 3 части, чтобы было понятнее что я хочу сделать
Переменные php участвующие в запросе:
$array1 = 1, 13, 5, 4, 86, 6, ... ;
$array1 = 1, 35, 3, 46, 5, 17, ... ;
Массивы преобразованы в нужный вид:
$array1 = implode(", ", $oldarray1);
1 часть:SELECT * FROM "post"
WHERE user_id = IN ( $array1 )
LIMIT 0, 20
Условие поле user_id_posted должно быть равно полю user_id
(если условие в таком случае не возможно, то можно без него)
2 часть:SELECT * FROM "userpost"
WHERE group_id = IN ( $array2 )
LIMIT 0, 20
3 частьORDER BY date (тип datetime)
LIMIT 0, 20
На счет LIMIT не знаю как описать правильно, в итоге должно выбраться всего 20 записей, я полагаю что сначала MySQL выбирает 1 запрос - 20 записей, потом 2 запрос - 20 записей, далее сортирует их и возвращает 20 из 40, остальные 20 он выкидывает.
Ну это только в теории.
Буду весьма благодарен за помощь! А то я мучаюсь с этим запросом уже неделю.