@evilelf
Тупой, руки из жопы, кодю за зп и т.п. и т.д.

Как правильно составить sql в mysql?

Задача: ставить 3 строки в billings, колонки user_id, billing_type_id, currency_id. user_id и billing_type_id передаётся извне.
Хотелка: вернуть ID из таблицы currency, где name==usd. Вставить этот ID в billing, в колонку currency_id.

Ошибочный запрос:
(SELECT `ID` FROM `currency` cur WHERE name='usd') 
UNION ALL 
(INSERT INTO `billings` (user_id,billing_type_id,currency_id) VALUES (11,1,cur.ID),(11,2,cur.ID),(11,3,cur.ID));


Как правильно записать? И стоит ли это пихать в 1 запрос?

Заранее спасибо.
  • Вопрос задан
  • 2267 просмотров
Решения вопроса 1
INSERT INTO `billings` (user_id, billing_type, currency_id)
SELECT
    b.user_id
    ,b.billing_type
    ,c.id as currency_id
FROM (
    SELECT 11 as user_id, 1 as billing_type UNION
    SELECT 11 as user_id, 2 as billing_type UNION
    SELECT 11 as user_id, 3 as billing_type
) b
INNER JOIN `currency` c ON c.name='usd'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы