"тупо не понял " (с) ответ (сорри за иронию :) )
ок
таблица для выборки :
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
/*
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for court_rs_registred_on_adrress_individual
-- ----------------------------
DROP TABLE IF EXISTS `court_rs_registred_on_adrress_individual`;
CREATE TABLE `court_rs_registred_on_adrress_individual` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`individual_id` int(11) NOT NULL COMMENT 'id физлица',
`adrres_id` int(11) NOT NULL id COMMENT 'адреса проживания (квартиры или дома)',
`adrres_table` bit(1) NOT NULL DEFAULT b'1' COMMENT 'переключатель адреса \'1\' - квартира, \'0\' - частный дом без квартиры',
`table_id` int(255) NULL DEFAULT NULL COMMENT 'id таблицы: 4 - квартира, 3 дом',
`lc_id` int(11) NULL DEFAULT NULL COMMENT 'id ЛС',
PRIMARY KEY (`id`) USING BTREE,
INDEX `individual_id1`(`individual_id`) USING BTREE,
CONSTRAINT `individual_id1` FOREIGN KEY (`individual_id`) REFERENCES `court_spr_individual` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB AUTO_INCREMENT = 8206 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
CONSTRAINT `court_rs_registred_on_adrress_individual_ibfk_1` FOREIGN KEY (`individual_id`) REFERENCES `court_spr_individual` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB AUTO_INCREMENT = 8206 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of court_rs_registred_on_adrress_individual
-- ----------------------------
INSERT INTO `court_rs_registred_on_adrress_individual` VALUES (1, 1, '2012-12-01', NULL, 70, b'1', 4, NULL, NULL, NULL, NULL);
INSERT INTO `court_rs_registred_on_adrress_individual` VALUES (2, 2, '2012-12-01', NULL, 73, b'1', 4, NULL, NULL, NULL, NULL);
INSERT INTO `court_rs_registred_on_adrress_individual` VALUES (3, 3, '2013-08-30', NULL, 72, b'1', 4, NULL, NULL, NULL, NULL);
INSERT INTO `court_rs_registred_on_adrress_individual` VALUES (4, 4, '2013-08-30', '2013-09-19', 72, b'1', 4, NULL, NULL, NULL, NULL);
INSERT INTO `court_rs_registred_on_adrress_individual` VALUES (3119, 3119, '2013-10-31', NULL, 178, b'0', 3, NULL, NULL, NULL, NULL);
INSERT INTO `court_rs_registred_on_adrress_individual` VALUES (3120, 3120, '2013-10-31', NULL, 210, b'0', 3, NULL, NULL, NULL, NULL);
INSERT INTO `court_rs_registred_on_adrress_individual` VALUES (3121, 3121, '2013-10-31', NULL, 210, b'0', 3, NULL, NULL, NULL, NULL);
SET FOREIGN_KEY_CHECKS = 1;
2 таблицы выборок для присоединения к первой таблицы в зависимости от значения поля adrres_table (table_id - это у меня "справочник" таблиц) по id:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for court_spr_flat
-- ----------------------------
DROP TABLE IF EXISTS `court_spr_flat`;
CREATE TABLE `court_spr_flat` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`house_id` int(11) NOT NULL COMMENT 'ссылка на id дома',
`number` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'номер квартиры',
`s` decimal(6, 2) NULL DEFAULT NULL COMMENT 'площадь',
`floor` decimal(2, 0) NULL DEFAULT NULL COMMENT 'этаж',
`cost` decimal(11, 2) NULL DEFAULT NULL COMMENT 'стоимость',
`date_in_rr` bit(1) NULL DEFAULT b'1' COMMENT 'дата информации Росреестра',
`text_adress` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'адрес текстом',
PRIMARY KEY (`id`) USING BTREE,
INDEX `house_id1`(`house_id`) USING BTREE,
CONSTRAINT `house_id1` FOREIGN KEY (`house_id`) REFERENCES `court_spr_house` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB AUTO_INCREMENT = 3899 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `court_spr_house`;
CREATE TABLE `court_spr_house` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_street` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'GUID улицы из ФИАС',
`id_house` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'GUID дома из ФИАС',
`housenum` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'номер дома',
`street_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'улица',
`mir_sud_id` int(11) NULL DEFAULT NULL COMMENT 'id мирового участка',
`rai_sud_id` int(11) NULL DEFAULT NULL COMMENT 'id районного суда',
`text_adress` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'адрес текстом',
`client_id` int(11) NULL DEFAULT NULL COMMENT 'id клиента',
PRIMARY KEY (`id`) USING BTREE,
INDEX `mir_sud_id`(`mir_sud_id`) USING BTREE,
INDEX `rai_sud_id`(`rai_sud_id`) USING BTREE,
INDEX `client_adress_id`(`client_id`) USING BTREE,
CONSTRAINT `client_adress_id` FOREIGN KEY (`client_id`) REFERENCES `court_spr_clients` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `mir_sud_id` FOREIGN KEY (`mir_sud_id`) REFERENCES `court_spr_court` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `rai_sud_id` FOREIGN KEY (`rai_sud_id`) REFERENCES `court_spr_court` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB AUTO_INCREMENT = 573 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
т.е. если учесть пример, то к первым 4 записям должны присоединиться данные из court_spr_flat , а к остальным - из court_spr_house (в общем-то говоря в итоге в первом случае должно быть court_spr_flat+court_spr_flat+court_spr_house...+ФИАС
во втором court_spr_flat+court_spr_house...+ФИАС
|