INSERT INTO с использованием подзапроса - PullRequest
0 голосов
/ 24 марта 2020

В: Укажите клиента Джейка Смита, адрес доставки которого «yknhl fr hluhw», и люди могут связаться с ним по номеру «1236548780» & «jakesmith@email.com» (используйте подзапрос, чтобы получить адрес).

Адрес доставки находится в другой таблице с именем shipping_details , на которую можно ссылаться с помощью столбца shipping_id_details .

Я не могу его получить правильно. 1

INSERT INTO assignment2.customers(first_name, last_name, email, phoneNo, shipping_details_id)
VALUES('Jake', 'Smith', 'jakesmith@email.com', '1236548780',
       SELECT FROM assignment2.shipping_details 
       WHERE address = 'yknhl fr hluhw'))

Структуры таблиц:

assignment2.customers 
(customer_id, first_name, last_name, email, phoneNo, shipping_detail_id) 

assignment2.shipping_details 
(shipping_detail_id, address, city, province)

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Игнорирование части о подзапросе, ниже приведен пример запроса. Для получения дополнительной помощи см. Почему я должен предоставить минимальный воспроизводимый пример для очень простого SQL запроса?

INSERT INTO assignment2.customers
(first_name
, last_name
, email
, phoneNo
, shipping_details_id
)
SELECT 'Jake'
     , 'Smith'
     , 'jakesmith@email.com'
     , '1236548780',
     ,  x.shipping_details_id
  FROM assignment2.shipping_details x
 WHERE x.address = 'yknhl fr hluhw'
-- LIMIT 1
0 голосов
/ 24 марта 2020

Вам нужно изменить свой запрос следующим образом ...

INSERT 
INTO assignment2.customers( 
  first_name
  , last_name
  , email
  , phoneNo
  , shipping_details_id
) 
VALUES ( 
  'Jake'
  , 'Smith'
  , 'jakesmith@email.com'
  , '1236548780'
  , ( 
    SELECT
      shipping_detail_id 
    FROM
      assignment2.shipping_details 
    WHERE
      address = 'yknhl fr hluhw'
  )
) 
...