我是一个初学者程序员,我想问一些关于 SQL 和 PHP 的问题。所以,我在数据库中有 3 个表,第一个是存储用户信息的表 't1'
(id--> primary key,username, password , email),
第二个是关于技能't2'
( id--> primary key, skills,level)
第三个是关于用户更具体的细节
(id--> primary key, years, language).
我想要的是存储在 t1 中已经存在的特定用户中的表 t2 和 t3。我怎样才能做到这一点?
我尝试通过将每个 id 添加到另一个表来连接三个表,例如 t2 表包含 t1 的 id 作为列,而 t3 表包含 t1 的 id 和 t2 的 id。
我的问题是,当我在 t3 中插入数据时,如何获取 t1.id 和 t2.id 以便在一个表中显示三个表的所有信息。
CREATE TABLE IF NOT EXISTS `t3` (
`degree` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`exp_years` varchar(25) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`department` varchar(25) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`t3_id` int(25) NOT NULL AUTO_INCREMENT,
`t1_id` int(11) NOT NULL,
`t2_id` int(11) NOT NULL,
PRIMARY KEY (`t3_id`),
UNIQUE KEY `id` (`t3_id`),
KEY `t1id` (`t1_id`),
KEY `t2_d` (`t2_id`),
KEY `t2_id` (`t2_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=50 ;
CREATE TABLE IF NOT EXISTS `t2` (
`fullname` varchar(35) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`webpage` varchar(150) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`rating` varchar(30) NOT NULL,
`t2_id` int(11) NOT NULL AUTO_INCREMENT,
`t1_id` int(11) NOT NULL,
PRIMARY KEY (`t2_id`),
KEY `t1_id` (`t1_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=147 ;
CREATE TABLE IF NOT EXISTS `t1` (
`t1_id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(25) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`password` varchar(25) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`cpassword` varchar(25) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`email` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`role` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`t1_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=64 ;