Я начинаю программист, и я хочу спросить что-то о SQL и PHP. Итак, у меня есть 3 таблицы в базе данных, то первый из них является таблица «t1'that хранит информацию о пользователеSQL php connect три таблицы
(id--> primary key,username, password , email),
второй составляет около навыков„t2“
(id--> primary key, skills,level)
а третий один около более speciffic детали для пользователя
(id--> primary key, years, language).
То, что я хочу это таблица t2 и t3 хранится в определенном пользователем, который уже существует в t1. Как я могу это достичь?
Я попытался подключить три таблицы, как это, добавив каждый один идентификатор к другой таблице, например, таблица t2 содержит идентификатор t1 в качестве столбца, а таблица t3 содержит идентификатор t1 и идентификатор из 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
Некоторые рекомендации: Переименуйте свои таблицы. Это непонятно. Просто назовите их чем-то вроде «пользователей, навыков, языка» или чего-то еще.Если вы вернетесь к этим именам таблиц позже, вы не знаете, что они означают. Табличные имена должны объяснять себя таким образом, чтобы другой человек мог сказать, что это такое для – Martijn
@Bojangles .. Я размещаю таблицы в вопросе. – user2673219