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