| Здравствуйте, не могу связать правильно таблицы. Суть такова: Пользователь, представитель фирмы, авторизуется н асайте и получает возможность редактировать данные о своей фирме. Но администратор сайта должен просмотреть изменеия и отредактировать их. Для этого созданы временный таблицы, куда заносятся пользовательские данные. Всего временных таблиц 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`
Но проблема в том, что если хотябы одна таблица пуста, то ничего не выбирается.
Прошу помощи. | |