我是一個begginer程序員,我想問一些關於SQL和PHP的東西。所以,我在數據庫中有3個表,第一個是表t2‘SQL php連接三張表
(id--> primary key, skills,level)
和「關於用戶
(id--> primary key,username, password , email),
第二個是關於技能t1'that存儲信息’第三個是用戶
(id--> primary key, years, language).
我需要的表T2和T3存儲在已經存在於T1特定用戶更多speciffic細節。我怎樣才能做到這一點?
我試圖通過addind將每個id連接到另一個表,例如t2表包含t1的id作爲列,而t3表包含t1的id和id的t2。
我的問題是,當我在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 ;
你不清楚你要問什麼,特別是這一點:'我想要的是表t2和T3存儲在已經存在於t1中的特定用戶。我怎麼能做到這一點?'。請發佈一些SQL表格結構示例和你試過的東西 – Bojangles
建議的一些內容:重命名錶格。這是不可理解的。只是稱他們爲'用戶,技能,語言'或其他東西。如果您稍後返回這些表名,則不知道它們的含義。 Tablesnames應該以另一個人可以說明的方式來解釋自己是什麼 – Martijn
@Bojangles ..我在問題中發佈表格。 – user2673219