Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Объединение четырёх таблиц
 
 автор: Aramor   (06.02.2009 в 07:00)   письмо автору
 
 

Здравствуйте, не могу связать правильно таблицы. Суть такова: Пользователь, представитель фирмы, авторизуется н асайте и получает возможность редактировать данные о своей фирме. Но администратор сайта должен просмотреть изменеия и отредактировать их. Для этого созданы временный таблицы, куда заносятся пользовательские данные. Всего временных таблиц 3:

//таблица фирм:
CREATE TABLE `firms` (
`id` int(25) NOT NULL auto_increment,
`name` varchar(100) default NULL,
- - -
PRIMARY KEY (`id`)
)

//временная таблица фирм
CREATE TABLE `temp_firms` (
`id` int(25) NOT NULL auto_increment,
`id_orig` int(25) default NULL,
`name` varchar(255) NOT NULL,
- - -
PRIMARY KEY (`id`)
)

//если у фирмы есть дополнительный адрес, то его id из таблицы temp_dopa присутствует в этой промежуточной таблице:
CREATE TABLE `temp_firms_dop` (
`id` int(255) NOT NULL auto_increment,
`firms_id` int(255) NOT NULL,
`dopf_id` int(255) NOT NULL,
PRIMARY KEY (`id`)
)

//фирма состоит в какой-то категории (одной или нескольких) и если пользователь поменял информацию о "категорийности" своей фирмы, то в данной таблице создаются записи о категоряях:
CREATE TABLE `temp_podcat_firms` (
`id` int(255) NOT NULL auto_increment,
`podcat_id` int(255) NOT NULL,
`firms_id` int(255) NOT NULL,
PRIMARY KEY (`id`)
)

По воле обстоятельств создалась необходимость узнать id фирмы, бля которой были сделаны какие-то изменения (изменения в осн. таблице, в таблице категорий или доп. адреса). Делаю след. запрос:
SELECT DISTINCT `firms`.`id`, `firms`.`name`
FROM `firms`, `temp_firms`, `temp_firms_dop`, `temp_podcat_firms`
WHERE `firms`.`id`=`temp_podcat_firms`.`firms_id`
OR `firms`.`id`=`temp_firms`.`id_orig`
OR `firms`.`id`=`temp_firms_dop`.`firms_id`
Но проблема в том, что если хотябы одна таблица пуста, то ничего не выбирается.
Прошу помощи.

  Ответить  
 
 автор: Aramor   (06.02.2009 в 15:03)   письмо автору
 
   для: Aramor   (06.02.2009 в 07:00)
 

Господа, ну подскажите хоть что-нибудь, в какую сторону капать

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования