#php #mysql
#php #mysql
Вопрос:
В моей базе данных есть две таблицы. Я использую первый для выполнения процесса входа / регистрации, где я сохраняю информацию о пользователе (имя, адрес электронной почты, пароль). Итак, я создал вторую таблицу, в которую зарегистрированные пользователи могут добавлять изображение и название продукта, но я обнаружил, что 2 таблицы не могут взаимодействовать, и у них нет возможности использовать вторую таблицу.
Пожалуйста, как я могу это сделать?
Если вам нужна дополнительная информация, дайте мне знать.
Комментарии:
1. означает, что вам нужно к
join
ним или что-то еще…..2. Прочитайте о соединениях MySQL.
3. Достойное место для начала: tutorialspoint.com/mysql/mysql-using-joins.htm
4. были ли у вас какие-либо отношения между столбцами идентификаторов обеих таблиц, например, или столбцами идентификаторов, используемых в обеих таблицах. вы можете обрабатывать с помощью mysql JOINS, FULL OUTER JOIN и т. Д…
5. @Adetona77. Я предоставил четкие объяснения по поводу внешнего ключа и таблиц объединения. Поделитесь мыслями о своем представлении. если вы столкнетесь с какими-либо препятствиями, дайте мне знать.
Ответ №1:
Вы можете сделать это с помощью foreign key relationships
.
Ссылка: http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html
- Сначала вам нужно создать таблицу с реляционным идентификатором (внешним ключом) из первой таблицы, чтобы вы могли извлекать данные.
- После того, как вы предоставите внешний ключ запросам, где вы можете использовать доступные соединения, и вы сможете получить данные.
Примечание: Если у вас нет реляционного идентификатора другой таблицы, вам не рекомендуется использовать запрос JOIN, поскольку вы должны передать реляционный идентификатор (внешний КЛЮЧ) в join stmt.
Инструкция SQL для создания идентификатора внешнего ключа из самой первой таблицы.
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
Следующий SQL создает ВНЕШНИЙ КЛЮЧ в столбце «P_Id» при создании таблицы «Заказы»
После создания внешнего ключа для обеих таблиц, которые вы создаете, вы можете выполнить приведенный здесь код, а затем объединить обе таблицы.
http://dev.mysql.com/doc/refman/5.7/en/join.html
Вы должны создать структуру таблицы следующим образом:
Таблица информации о пользователе:
------------------------------------------
| id | name | Email | Password |
------------------------------------------
И таблица продуктов, подобная этой
------------------------------------------
| id | user_id | product_name |
------------------------------------------
- Здесь
user_id
будет действовать как внешний дляuser
таблицы при доступе к таблице продуктов.
Следовательно, код будет следующим.
Для извлечения всех данных из двух таблиц:
$query = "SELECT * FROM user JOIN product ON user.id = product.user_id ORDER BY user.id DESC"
Для извлечения данных на основе конкретного пользователя.
$query = "SELECT * FROM user JOIN product ON user.id = product.user_id WHERE user.id ='".$id."'"
- Где
$id
идентификатор текущего пользователя.
Надеюсь, что мои объяснения будут понятными, и это вам очень поможет.
Счастливого кодирования 🙂
Комментарии:
1. Нареш, мои вопросы.
2. 1. Собираюсь ли я предоставлять внешние ключи для обеих таблиц.
3. Используйте идентификатор пользователя в обеих таблицах в качестве внешних ключей. Это поможет создать отношения типа «один ко многим» и для объединения тоже. Без них вы никогда не узнаете, кто добавляет изображения для продуктов.
4. В таблице «Persons» я собираюсь создать еще один внешний ключ?
5. Эй, Нареш, как мне заставить пользователя вставить в «product_name»?