Я делаю новостную ленту и хочу выбрать из нескольких таблиц. Две таблицы, на которых я сконцентрируюсь на этом вопросе, это «сообщения» и «фотографии».
Вот мой запрос только для сообщений:
mysql_query("
SELECT * FROM posts
WHERE toID='$id' AND state='0'
ORDER BY id DESC LIMIT 10");
Таблица моих сообщений имеет следующие имена столбцов:
Table: posts
id toID fromID post state date
1 1 1 Aloha 0 1
2 1 1 Hello 0 3
Моя таблица фотографий имеет следующее:
Table: photos
id userID photo state date
1 1 2 0 2
2 1 6 0 4
Ожидаемый результат:
Aloha
2
Hello
6
Может быть, что-то вроде:
SELECT *
(SELECT * FROM posts WHERE toID=$id AND state=0) AND
(SELECT * FROM photos WHERE userID=$id AND state=0)
ORDER BY date
Когда он выбирает их из базы данных, он должен выбирать, где toID и userID совпадают. состояние должно быть равно 0 для обоих, (0 означает видимый), и они должны быть упорядочены по дате. Также мне нужно создать новую переменную для передачи в мой запрос, чтобы затем я мог в своем php определить, из какой таблицы поступает информация. Наконец, я хотел бы сгруппировать фотографии по дате, так что предположим, что пользователь загрузил 20 фотографий в течение 30-минутного периода, они вернут только одну строку. Я использую php time () для хранения своей даты.