Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: выборка из четырех таблиц
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » выборка из четырех таблиц

Страниц (1): [1]
 

1. Ricco381 - 06 Января, 2015 - 20:06:31 - перейти к сообщению
Есть четыри таблицы video,comments,like,otvet в каждой таблице есть поле userID в которой хранится id пользователя.
Как мне достать все поля из таблиц у которых userID например 3.
И когда в одну из таблиц добавляется значение оно должно быть в начале массива. Если можно использавать order by будет вообще супер.
Помогите пожалуйста, спасибо!
2. teddy - 06 Января, 2015 - 21:32:08 - перейти к сообщению
Попробуйте этот запрос. Ну и вместо звездочки укажите только нужные поля, что бы не выбирать то, чего не надо
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM
  2.     `users`
  3.           LEFT JOIN `video` ON `video`.`userID` = `users`.`id`
  4.           LEFT JOIN `comments` ON `comments`.`userID` = `users`.`id`
  5.           LEFT JOIN `like` ON `like`.`userID` = `users`.`id`
  6.           LEFT JOIN `otvet` ON `otvet`.`userID` = `users`.`id`
  7.        WHERE `users`.`id` = 3
  8.        ORDER BY `video`.`id` DESC,
  9.             `comments`.`id` DESC,
  10.             `like`.`id` DESC,
  11.             `otvet`.`id` DESC  
3. Ricco381 - 06 Января, 2015 - 22:02:43 - перейти к сообщению
не пойму что за таблица users и что делает точка?
4. teddy - 06 Января, 2015 - 23:06:10 - перейти к сообщению
Ricco381 пишет:
не пойму что за таблица users

Вы написали, что в перечисленных таблицах есть userID. Значит где то должна быть и таблица users, с которой и связаны данные, или нет? Улыбка Поля из нее в текущем контексте(если я все верно понял) выбирать не нужно, она в запросе чисто для джойнов и участия в фильтрации.

`table`.`column_name` вот что значит точка. Т.е ссылаемся на конкретное поле конкретной таблицы. Название полей конечно же должны быть Вашими.
5. Ricco381 - 07 Января, 2015 - 01:27:14 - перейти к сообщению
Спасибо, утром попробую.
6. Ricco381 - 07 Января, 2015 - 10:04:35 - перейти к сообщению
Выбирает очень много столбцов
7. Ricco381 - 08 Января, 2015 - 00:02:01 - перейти к сообщению
есть три запроса
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql = query("SELECT * FROM `user` WHERE `userID` = 3");
  3. $sql1 = query("SELECT * FROM `videos` WHERE `userID` = 3");
  4. $sql2 = query("SELECT * FROM `likes` WHERE `userID` = 3");
  5.  


как сделать чтоб выборка добавлялась в конец массива по мере добавления данных в базу?

 

Powered by ExBB FM 1.0 RC1