SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.06.2012 07:44:30

in9emix
Завсегдатай
Зарегистрирован: 20.04.2012
Сообщений: 37

Не могу составить правильный запрос

дравствуйте, не могу составить правильный запрос.

У меня есть общая таблица куда заносятся id(шки) , пользователей, статей и т.д...

Хочу вывести в цикле аватарки статей из этой таблицы и аватарки юзеров из этой же таблицы...сложность заключается в том что у меня аватарки юзеров находятся в одной таблицы и аватарки статей в другой, если делаю запрос через JOIN на вывод аватарок юзеров то не выводятся аватарки статей, если наоборот ты не выводятся аватарки юзеров....а хочу что бы выводились все аватарки....( вот как мне сделать запрос, я пробовал через LEFT и RIGHT ...ничего не выходит...пустоту выдает...

Иначе говоря мне надо вытащить все аватарки из 1ой и 2ой таблицы id(шки) которых совпадают в общей таблице...


Труднее всего заработать первый миллион долларов. Аристотель Онассис

Неактивен

 

#2 22.06.2012 08:07:44

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Не могу составить правильный запрос

select ... from `общая таблица` t1 join `таблица статей` t2 on t1.`id статей`=t2.id join `таблица аватар` t3 on t1.`id аватар`=t3.id where t1.`id статей`=t1.`id аватар`;

Неактивен

 

#3 22.06.2012 10:42:27

in9emix
Завсегдатай
Зарегистрирован: 20.04.2012
Сообщений: 37

Re: Не могу составить правильный запрос

У меня чуть чуть не так:

CREATE TABLE  `main_db`.`all_info` (
`numbers` INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`host_id` INT( 3 ) NOT NULL ,
`cat` VARCHAR( 60 ) NOT NULL ,
`login_id` INT( 3 ) NOT NULL ,
`date` DATETIME NOT NULL
) ENGINE = MYISAM

host_id - сюда попадают id юзеров которые создали или подписались на какую то стаью.
cat - тут названи категории, например (подписчик или создавший).
login_id - здесь всегда храниться id статьи. Не важно подписались на нее или создали. Сюда летить id статьи.

http://i067.radikal.ru/1206/fd/47db29629fd2.png

CREATE TABLE  `main_db`.`all_users` (
`id` INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`login` VARCHAR( 100 ) NOT NULL ,
`avatar` VARCHAR( 100 ) NOT NULL ,
`date` DATETIME NOT NULL
) ENGINE = MYISAM

Тут пользователи: их логин, аватар, дата регистрации

http://s48.radikal.ru/i122/1206/e4/eee3b1ce356d.png

CREATE TABLE  `main_db`.`all_lessons` (
`id` INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`admin_id` INT( 3 ) NOT NULL ,
`name` VARCHAR( 100 ) NOT NULL ,
`description` VARCHAR( 200 ) NOT NULL ,
`category` VARCHAR( 300 ) NOT NULL ,
`img` VARCHAR( 300 ) NOT NULL ,
`date` DATETIME NOT NULL
) ENGINE = MYISAM

Тут уроки: id администратора статьи (создателя), название, описание, категория статьи, аватарка статьи и дата создания.

http://s52.radikal.ru/i136/1206/c7/572fb062a9da.png

В таблице all_users все зарегистрированные юзеры
В таблице all_lessons все статьи, уроки
В таблице all_info юзеры которые создали статьи (уроки), а так же юзеры которые подписались на них. Понимаю что можно было разделить на 2 таблицы, но мне нужно именно так.

Что я хочу сделать...
Вытащить в цикле всю информацию из таблицы all_info одним запросом, я уже создал очень удобную таблицу где будут выводиться миниатюры (avatars,img), дата, кто создал, кто подписался, название, краткое описани и т.д...

Очень нужен грамотный запрос который я составить не в силах, поэтому обратился сюда за помощью.
Конечно я сначало в цикле все сделал...там было аж 4 запроса... все выводилось красиво, но ...столько запросов к бд из за 1 статьи...это слишком.


Труднее всего заработать первый миллион долларов. Аристотель Онассис

Неактивен

 

#4 23.06.2012 09:43:33

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Не могу составить правильный запрос

in9emix написал:

Что я хочу сделать...
Вытащить в цикле всю информацию из таблицы all_info одним запросом

Конкретизируйте задачу. Какой результат должен быть у выборки.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson