базовое соединение на mysql

Мне трудно понять, как присоединиться к mySQL, и я не могу найти какой-либо подобный пример для работы.

Предположим, у меня есть две таблицы: users и users_info .

у пользователей у меня есть поля id , email и password , а в users_info ) у меня есть вся их информация, например < code> name , surname , street и т. д.).

поэтому, если я получаю такого пользователя:

SELECT * FROM users WHERE id = 43

и их информация:

SELECT * FROM users_info WHERE id = 43

В основном я получу 2 результата и 2 таблицы.

Теперь я понимаю, что мне нужно использовать соединение, чтобы они были вместе, но я просто не могу понять.

Любая помощь?

1

3 ответы

Кажется, что обе таблицы users и user_info связаны друг с другом по столбцу id , поэтому вам нужно присоединиться к ним, используя этот столбец, как это:

SELECT 
  u.id,
  u.email,
  u.password,
  i.name, 
  i.surname, 
  i.street
FROM users           AS u
INNER JOIN user_info AS i ON u.id = i.id;

Это отобразит только поля id, email, ... и т. Д. . Однако , если вы хотите выбрать все столбцы из обеих таблиц, используйте SELECT * :

SELECT *
FROM users           AS u
INNER JOIN user_info AS i ON u.id = i.id;

Если вы хотите ввести id и получить все эти данные для определенного пользователя, добавьте предложение WHERE в конце запроса:

SELECT *
FROM users           AS u
INNER JOIN user_info AS i ON u.id = i.id
WHERE u.id = 43; 

Для получения дополнительной информации о JOIN выполните следующие действия:

2
добавлено
@johnsmith - для этого используйте SELECT * , см. мое редактирование.
добавлено автор Mahmoud Gamal, источник
спасибо, но что, если я хочу выбрать * из обеих таблиц?
добавлено автор john smith, источник

Вот пример

SELECT * FROM пользователи u
INNER JOIN пользователи_info i
ON u.id=i.id

это означает, что вы присоединяетесь к таблице пользователи и таблице пользователи_info

например

пользователи

id     name
----   -------
 1      abc
 2      xyz

пользователи_info

id     email 
---    ------
 1      [email protected]
 2      [email protected]

запрос вернется

id    name   email
---   -----  -------
 1     abc    [email protected]
 2     xyz    [email protected]

Вот хороший учебник

0
добавлено

Вы также можете сделать:

SELECT users.*, users_info.*
FROM users, users_info
WHERE users.id = users_info.id AND users.id = 43;

Это означает: «Получите мне все столбцы из таблицы users, все столбцы из таблицы users_info для строк, где столбец идентификаторов пользователей и столбец id user_info соответствуют друг другу»

0
добавлено
Послушай, я отредактировал ответ с идентификатором
добавлено автор Bgi, источник
нормально, но как я могу ввести идентификатор?
добавлено автор john smith, источник
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)