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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите составить запрос!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: вытянуть данные из нескольких таблиц..
Koc
Отправлено: 02 Марта, 2013 - 22:58:35
Post Id



Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Всем добрый вечер,

В БД есть несколько таблиц: user, post, coments, file.

В таблице user есть столбец id, во всех остальных таблицах user_id = id.
Как сделать запрос чтобы при выборе юзера из таблицы user, вытягивались данные из всех остальных таблиц где user_id = id пользователя которого мы выбрали.

Заранее спасибо!
 
 Top
LIME
Отправлено: 02 Марта, 2013 - 23:45:17
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM comments JOIN user ON comments.user_id=user.id
 
 Top
Koc
Отправлено: 03 Марта, 2013 - 12:43:30
Post Id



Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




LIME
А одним запросом из всех остальных таблиц можно?
или делать новые запросы под каждую таблицу?
 
 Top
dubasua
Отправлено: 03 Марта, 2013 - 13:12:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




У вас в каждой таблице разные поля и разные типы, можно объединить запросы в один, но нужно соблюдать вытаскиваемые поля. Например
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT t.coments AS post, 'comennt' AS type FROM comments t JOIN user ON t.user_id=user.id
  3. UNION
  4. SELECT t.post AS post, 'post' AS type FROM posts t JOIN user ON t.user_id=user.id
  5.  
  6.  
 
 Top
Koc
Отправлено: 03 Марта, 2013 - 13:18:05
Post Id



Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




dubasua пишет:
У вас в каждой таблице разные поля и разные типы, можно объединить запросы в один, но нужно соблюдать вытаскиваемые поля


Если будит много таблиц и данных в каждой таблице, то как лучше, одни запросом или всетаки разбить на разные?

(Отредактировано автором: 03 Марта, 2013 - 13:21:35)

 
 Top
dubasua
Отправлено: 03 Марта, 2013 - 13:25:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Вы думайте, что Вам нужно, то и делайте, просто нужно понимать, что на каждую вытащенную строку, у вас будет массив, и как по Вашему будет формироваться массив для постов, если вы указываете колонки комментариев???
 
 Top
Koc
Отправлено: 03 Марта, 2013 - 13:43:37
Post Id



Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




dubasua, все понял .. спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB