[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать условие слияние таблиц
lans8097
Доброго времени суток.
Та-куш вышло что я захотел сэкономить время на запросах к sql
Ситуация
Нужно вытащить все записи из таблички `blog`


CREATE TABLE IF NOT EXISTS `blog_comments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`post_id` int(11) NOT NULL,
`author_id` int(11) DEFAULT NULL,
`date` varchar(255) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`ip` varchar(255) DEFAULT NULL,
`message` text NOT NULL,
`action` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;



CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`login` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`grup` int(11) NOT NULL,
`baned` int(11) NOT NULL DEFAULT '0',
`activation` int(1) NOT NULL DEFAULT '0',
`bot` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `users_profile` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL COMMENT 'Имя',
`surname` varchar(255) NOT NULL COMMENT 'Фамилия',
`age` int(11) NOT NULL DEFAULT '0' COMMENT 'Возраст',
`country` varchar(255) NOT NULL COMMENT 'Страна',
`city` varchar(255) NOT NULL COMMENT 'Город',
`isq` varchar(255) NOT NULL,
`skype` varchar(255) NOT NULL,
`vk` varchar(255) NOT NULL COMMENT 'Вконтакте',
PRIMARY KEY (`id`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Если ячейка `blog`.`author_id`!==NULL
То нужно также подключить ещо две таблички `users` & `users_profile`

Примерно так

$sql = "
SELECT `blog`.*,
`users`.`email`,
`users_profile`.`name`
FROM `blog`
LEFT JOIN `users`ON(`users_id`=`blog`.`author_id`)
LEFT JOIN `users_profile` ON(`users_profile`.`user_id`=`users`.`id`)
WHERE `blog`.`blog_action`='1'
"
;
//Если где-то ошибся прошу извинения так как в sql много не знаю даи накидывал пример так сказать на коленке

В чём суть Нужно чтоб при выходе получился массив с 1 таблички если поле автор ид = NULL или-же c трёх табличек заменяя ячейки `blog`.`name` `blog`.`email`

Читал о IFNULL но так и не вкурил как его заюзать

подскажите наглядный пример пожалуйста[/sql][sql]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.