mysql вставить выбрать головоломку - PullRequest
1 голос
/ 26 августа 2009

Я пытаюсь вставить select, но меня смущает вопрос о том, как заполнить только 1 элемент в таблице назначения из select и заполнить остальные статическими значениями.

Это все в хранимой процедуре ... так что ... вот что я пытаюсь сделать ...

table:animals
id   |type| name
1    |cat  | mittens
2    |cat  | fluffy
3    |dog  | rex

table people_with_pets
persons_name | pets_name
Arnold       | rex

определена переменная owner = "Joe";

итак ... Джо любит кошек, и я хочу вставить все имена из таблицы animals в таблицу people_with_pets вместе с "joe".

Итак, я бы хотел select name from animals where type like 'cats';

и вставьте полученные значения вместе с "joe" в (в данном случае 2) новые строки в people_with_pets.

Я не уверен, что мне поможет insert select, похоже, что может, но я не уверен, как его использовать.

Ответы [ 3 ]

4 голосов
/ 26 августа 2009

INSERT INTO people_with_pets ВЫБРАТЬ «Джо», имя ОТ животных ГДЕ тип = «кошка»;

2 голосов
/ 26 августа 2009

INSERT INTO people_with_pets (people_name, pets_name) ВЫБЕРИТЕ «Джо», имя ОТ животных ГДЕ тип = «кошка»;

0 голосов
/ 13 января 2015

Я предполагаю, что вам нужно связать все типы кошек с Джо и вставить в таблицу people_with_pets, чтобы показать persons_name Джо вместе с другими именами кошек, с помощью одного оператора вставки select. *

Итак, вот что я сделал:

INSERT INTO people_with_pets
(SELECT 'Joe', name FROM animals WHERE type like 'cat');

Результат должен показать вам это:

mysql> select * from people_with_pets;

+--------------+-----------+
| persons_name | pets_name |
+--------------+-----------+
| Arnold       | rex       |
| Joe          | mittens   |
| Joe          | fluffy    |
+--------------+-----------+

3 строки в наборе (0,00 с)

...