Left join

Статус
Закрыто для дальнейших ответов.

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Доброго времени суток!
Имеется таблица, назовем её "tablica", в ней столбцы: [id] [id_login] [id_moder] [prichina], где:
id - обычный id авто
id_login - здесь хранится id пользователя, которому модератор поставил молчу или заблокировал
id_moder - здесь хранится id модератора, который поставил молчу или заблокировал пользователя
prichina - небольшой коммент от модератора, за что заблокировал или поставил молчу.
Вот надо как то связать эти id_login и id_moder с второй таблицей, где хранятся логины всех пользователей что бы потом вывести логины.
т.е нужно сделать вот так:
Модератор "логин,модера" заблокировал пользователя "логин_пользователя" за "тут причина"
Код:
//Надо сделать какой то запрос в бд с left join (какой?)
while($cikl=mysql_fetch_assoc($sql)){
echo $cikl['login_moder'].' заблокировал пользователя'.$cikl['login_polz'].'по причине: '.$cikl['prichina'].'<br>';
}
 

Snickers

Быдлокодер
Регистрация
05.11.2010
Сообщения
388
Код:
select `moders`.`login_moder`,`users`.`login_polz`,`tablica`.`prichina`
from `tablica`
left join `moders` on `tablica`.`id_moder` = `moders`.`id_moder`
left join `users` on `tablica`.`id_login` = `users`.`id_user`
where `id` = $ban_id 
limit 1
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Код:
select `moders`.`login_moder`,`users`.`login_polz`,`tablica`.`prichina`
from `tablica`
left join `moders` on `tablica`.`id_moder` = `moders`.`id_moder`
left join `users` on `tablica`.`id_login` = `users`.`id_user`
where `id` = $ban_id 
limit 1
Не подходит... проблема в том что модераторы и обычные пользователи в одной таблице... У меня нет таблицы `moders` с списком модером, я просто сделал в основную таблицу со всем пользователями ещё один столбец: `moder`, в нем стоит число, 1 - Главный модератор, 2 - модератор, 3 - младший модератор, остальное - обычный пользователь.. Поэтому нужно как то выдернуть из таблицы users логин юзера и модератора по их id, не знаю как:(
Такое вообще наверное невозможно :eek:hmy:
 

Snickers

Быдлокодер
Регистрация
05.11.2010
Сообщения
388
пробуй оприходовать
Код:
select `tablica`.`prichina`,
		(SELECT `moder`.`login_polz`  
		FROM `users` as `moder` 
		WHERE `moder`.`id_user` = `tablica`.`id_moder` 
		) as `login_moder`,
		(SELECT `user`.`login_polz`  
		FROM `users` as `user` 
		WHERE `user`.`id_user` = `tablica`.`id_login` 
		) as `login_polz`,		
from `tablica`
where `id` = $ban_id 
limit 1
p.s. через жопу можно все. что мешает распихать по двум запросам?
p.p.s ненавижу названия переменных и столбцов аля "prichina"... транслит это по моему худшее что можно придумать для названия. пусть уж лучше не "prichina" а "comments", куда читабельнее и запоминающе
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
пробуй оприходовать
Код:
select `tablica`.`prichina`,
		(SELECT `moder`.`login_polz`  
		FROM `users` as `moder` 
		WHERE `moder`.`id_user` = `tablica`.`id_moder` 
		) as `login_moder`,
		(SELECT `user`.`login_polz`  
		FROM `users` as `user` 
		WHERE `user`.`id_user` = `tablica`.`id_login` 
		) as `login_polz`,		
from `tablica`
where `id` = $ban_id 
limit 1
p.s. через жопу можно все. что мешает распихать по двум запросам?
p.p.s ненавижу названия переменных и столбцов аля "prichina"... транслит это по моему худшее что можно придумать для названия. пусть уж лучше не "prichina" а "comments", куда читабельнее и запоминающе
Спасибо, теперь буду знать, плюсанул))
А ещё вопрос.. сколько должно быть максимум столбцов в бд? А то у меня некоторые таблицы получаются по 20-30 столбцов:( А лишние таблицы стряпать не катит, у меня их и так уже 29.. Или это ещё мало?
 

Snickers

Быдлокодер
Регистрация
05.11.2010
Сообщения
388
Спасибо, теперь буду знать, плюсанул))
А ещё вопрос.. сколько должно быть максимум столбцов в бд? А то у меня некоторые таблицы получаются по 20-30 столбцов:( А лишние таблицы стряпать не катит, у меня их и так уже 29.. Или это ещё мало?
если ты делаешь выборку не сразу всех столбцов. то без разницы. максимум их может быть на сколько я помню 255. у меня в проекте в одной таблице 98 столбцов. все ок. только форма добавления эпичная на jQuery)
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Спасибо, теперь буду знать, плюсанул))
А ещё вопрос.. сколько должно быть максимум столбцов в бд? А то у меня некоторые таблицы получаются по 20-30 столбцов:( А лишние таблицы стряпать не катит, у меня их и так уже 29.. Или это ещё мало?
если ты делаешь выборку не сразу всех столбцов. то без разницы. максимум их может быть на сколько я помню 255. у меня в проекте в одной таблице 98 столбцов. все ок. только форма добавления эпичная на jQuery)
А если надо сразу все?
 

Snickers

Быдлокодер
Регистрация
05.11.2010
Сообщения
388
А если надо сразу все?
у меня примерно после вывода 2,500 строк на страницу, кончалась опера на сервере. но в эти строки подключалось ещё две или три таблицы. в общем месиво было

хотя есть ещё таблица, там примерно штук 30 столбцов. в базе около 45к записей. вот при выборке и обработке примерно на 30к строке, отваливался скрипт. оперы не хватало. foreach прожорлив был. решилось просто... увеличили оперу) благо скрипт этот выполняется раз или два раза в день. от полу часа до часа молотит строки и отправляет на удаленный сервер.
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Статус
Закрыто для дальнейших ответов.
Верх Низ