Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбор данных из двух таблиц 
V
    Опции темы
patap
Дата 3.6.2010, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 3
Всего: 40



Подскажите как лучше сделать

Есть две таблицы 

[user]
user_id
user_data

[statistics]
stat_id
stat_user_id
stat_data

связь один ко многим

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

если делать таким запросом
Код
 SELECT t1.*, t2.* FROM user AS t1, statistics AS t2 WHERE t1.user_id = t2.stat_user_id


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

или же в этой ситуации нужно использовать два запроса
Код

SELECT * FROM user


и 
Код

SELECT * FROM statistics

а затем на стороне php обработать эти массивы


или может как-то можно все это дело решить на стороне MySQL?


Это сообщение отредактировал(а) patap - 3.6.2010, 11:21


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
Mavrun
Дата 3.6.2010, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 25.11.2007

Репутация: 2
Всего: 13



на стороне мускула, однозначно. тебе нужны команды JOIN. 
http://www.ageent.ru/sql-inner-join.html
PM MAIL   Вверх
patap
Дата 3.6.2010, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 3
Всего: 40



Mavrun, точно! LEFT JOIN как раз то что нужно. 


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
MoLeX
Дата 3.6.2010, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



patap, скорей всего нужен LEFT OUTER JOIN


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
patap
Дата 3.6.2010, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 3
Всего: 40



MoLeX, это, я так понял, чтобы подстраховаться на будущее? 


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
MoLeX
Дата 3.6.2010, 11:55 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



аха. просто может в связанной таблице будет отсутствовать запрашиваемая информации, в этом случае LEFT JOIN проигнорирует запись, а LEFT OUTER JOIN  подставит NULL и спокойно обработает

Добавлено через 14 секунд
так что рекомендую  smile 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.