SQL объединяет 3 таблицы, а затем извлекает данные из 4-й таблицы одним запросом - PullRequest
0 голосов
/ 11 мая 2018

Моя база данных - MySQL.У меня есть 4 таблицы, вот структура:

users
---------------------------------
id | user_name | email | password
---------------------------------

tools
-----------------------------
id | tool_name | tool_details
-----------------------------

package
----------------------------------------------
id | package_name | tool_id | price | validity
----------------------------------------------

transaction
-----------------------------------------------
id | user_id | package_id | buy_date | expire_date
-----------------------------------------------

Теперь у меня есть users.id в качестве входных данных, с помощью которых я хочу знать, какой пользователь использует какой пакет какого инструмента.Вывод должен быть примерно таким:

user_name | tool_name | tool_details | package_name | price | buy_date | expire_date

Я запустил этот запрос, но с помощью этого я не знаю, как получить имя_сервера

SELECT 
  users.user_name, 
  transaction.package_id, 
  transaction.buy_date, 
  transaction.expiry_date
  package.price 
FROM 
  transaction 
  INNER JOIN 
    users ON 
    users.id = transaction.user_id 
  INNER JOIN 
    plans ON 
    transaction.package_id = package.id

1 Ответ

0 голосов
/ 11 мая 2018

Просто добавьте еще одно объединение, чтобы добавить столбцы из таблицы инструментов

SELECT 
  users.user_name, 
  transaction.package_id, 
  transaction.buy_date, 
  transaction.expiry_date,
  package.price,
  tools.tool_name 
FROM 
  transaction 
  INNER JOIN 
    users ON 
    users.id = transaction.user_id 
  INNER JOIN 
    package ON 
    transaction.package_id = package.id
  INNER JOIN
    tools ON
    package.tool_id = tools.id
...