在过去一小时的大部分时间里,我一直在查看这段代码,试图找出我的失误。这可能很明显,但是在电脑前呆了这么久之后,我可能只需要第二双眼睛就可以让它弹出。我连接了多个表以使它们保持 1NF 和 2NF,但有两个表让我绊倒。
我有一个名为 my_contacts 的主表,还有一个名为 zip_code 的包含州/城市信息的表。zip_code 保存主键行“zip_code”,my_contacts 保存其外键。
问题是,当我尝试加入他们时,我什么也得不到。我在什么地方搞砸了吗?以下是每个的 SHOW CREATE TABLEs:
对于 my_contacts:
CREATE TABLE `my_contacts` (
`contact_id` int(11) NOT NULL AUTO_INCREMENT,
`last_name` varchar(100) DEFAULT NULL,
`first_name` varchar(100) DEFAULT NULL,
`phone` varchar(13) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`gender` char(1) DEFAULT NULL,
`birthday` date DEFAULT NULL,
`prof_id` int(11) DEFAULT NULL,
`zip_code` int(11) DEFAULT NULL,
PRIMARY KEY (`contact_id`),
KEY `mc_profid_fk` (`prof_id`),
KEY `my_zip_fk` (`zip_code`),
CONSTRAINT `mc_profid_fk` FOREIGN KEY (`prof_id`)
REFERENCES `profession` (`prof_id`),
CONSTRAINT `my_zip_fk` FOREIGN KEY (`zip_code`) REFERENCES `zip_code` (`zip_code`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
对于邮政编码:
CREATE TABLE `zip_code` (
`zip_code` int(11) NOT NULL AUTO_INCREMENT,
`city` varchar(50) DEFAULT NULL,
`state` char(2) DEFAULT NULL,
PRIMARY KEY (`zip_code`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
提前致谢。