我想從分表中選擇所有的分割細節。但我想每個head_user_id,assistant_1_user_id的name_full和assistant_2_user_id將三個外鍵的MySQL表連接到同一個表
CREATE TABLE IF NOT EXISTS `user_mst` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`name_full` varchar(250) DEFAULT NULL,
`name_with_initials` varchar(250) DEFAULT NULL,
`gender` char(1) NOT NULL,
`nic_no` varchar(20) DEFAULT NULL,
`title_id` varchar(10) NOT NULL,
`dob` date DEFAULT NULL,
`address1` varchar(100) DEFAULT NULL,
`address2` varchar(100) DEFAULT NULL,
`address3` varchar(100) DEFAULT NULL,
`address4` varchar(100) DEFAULT NULL,
`tele_no` varchar(40) DEFAULT NULL,
`mob_no` varchar(40) DEFAULT NULL,
`email_personal` varchar(100) DEFAULT NULL,
`role_id` varchar(10) NOT NULL,
`creator_user_id` varchar(50) NOT NULL,
`active_user` tinyint(1) NOT NULL,
`emp_no1` varchar(50) DEFAULT NULL,
`emp_no2` varchar(50) DEFAULT NULL,
`unit_id` varchar(50) DEFAULT NULL,
`division_id` varchar(50) DEFAULT NULL,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
`email_official` varchar(45) DEFAULT NULL,
PRIMARY KEY (`user_id`),
KEY `fk_user_mst_title_mst` (`title_id`),
KEY `fk_user_mst_role_mst1` (`role_id`),
KEY `fk_user_mst_unit_mst1` (`unit_id`,`division_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO `user_mst` (`user_id`, `name_full`, `name_with_initials`, `gender`, `nic_no`, `title_id`, `dob`, `address1`, `address2`, `address3`, `address4`, `tele_no`, `mob_no`, `email_personal`, `role_id`, `creator_user_id`, `active_user`, `emp_no1`, `emp_no2`, `unit_id`, `division_id`, `username`, `password`, `email_official`) VALUES
(2, 'dss', 'ddsf', 'm', '2353246565v', '12', '2012-03-12', 'ewtewt', 'ryery', 'ertert', 'wetwet', '325235325', '23523534523', '[email protected]', '1', '1', 1, '', NULL, '1', '1', 'cde', '123', '[email protected]'),
(3, 'wrwer', 'egrt', 'f', '2432544663', '12', '2012-03-26', 'erwerw', 'wetw', 'ewtwe', 'ewtw', '132435435', '1243345345', 'dfggdfg', '23', '1', 1, '12', '12', '12', '3', 'pas', '123', 'sdasda'),
(4, 'asd', 'asd', 'f', '5671234676V', '12', '2012-03-05', 'sdgdsgsd', 'sdgsdgds', 'rgwergwetg', 'ergry', '12141242145', '1242135346', '[email protected]', '1', '123567', 1, '1234', '123', '1', '1', 'abc', '234', '[email protected]');
CREATE TABLE IF NOT EXISTS `division_mst` (
`division_id` varchar(50) NOT NULL,
`division_code` varchar(50) NOT NULL,
`name` varchar(100) NOT NULL,
`description` varchar(500) DEFAULT NULL,
`colour` varchar(50) DEFAULT NULL,
`head_user_id` int(11) DEFAULT NULL,
`assistant_1_user_id` int(11) DEFAULT NULL,
`assistant_2_user_id` int(11) DEFAULT NULL,
`main_division_id` int(11) DEFAULT NULL,
PRIMARY KEY (`division_id`),
KEY `fk_division_mst_user_mst1` (`head_user_id`),
KEY `fk_division_mst_user_mst2` (`assistant_1_user_id`),
KEY `fk_division_mst_user_mst3` (`assistant_2_user_id`),
KEY `fk_division_mst_main_division_mst1` (`main_division_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `division_mst` (`division_id`, `division_code`, `name`, `description`, `colour`, `head_user_id`, `assistant_1_user_id`, `assistant_2_user_id`, `main_division_id`) VALUES
('1', 'D001', 'Administration', 'tjrtujrt', 'pink', 1, 2, NULL, 1),
('2', 'D002\n', 'Human Resource\n', 'yjghkhk', 'red', 1, 3, 2, 1),
('3', 'D003', 'Marketing', 'jhghfg', 'green', 2, 1, 3, 2),
('4', 'D004', 'IT ', NULL, NULL, NULL, NULL, NULL, NULL),
('5', 'D005', 'Accounting ', NULL, NULL, NULL, NULL, NULL, NULL);
FYI它看起來像你的外鍵是因爲通常錯誤地創建時,外鍵已經被正確創建,你會看到類似約束'blah_ibfk_' FOREIGN KEY('blah_id')REFERENCES'blah'('id') – hsanders
[你試過什麼?](http://www.whathaveyoutried.com) – Kermit
@hsanders是的。但我需要SELECT查詢。 head_user_id,assistant_1_user_id和assistant_2_user_id對user_mst(user_id)的所有引用。 –