2009-08-26 13 views
1

Ich versuche, Select einfügen, aber ich bin verwirrt, wie nur 1 Element in der Zieltabelle aus der Auswahl zu füllen, und füllen Sie den Rest mit statischen Werten.Mysql einfügen wählen Sie Rätsel

Das ist alles in einer Stored Procedure ... so ... hier ist, was ich zu tun, ich versuche ...

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

table people_with_pets 
persons_name | pets_name 
Arnold  | rex 

definierte Variable owner = "Joe";

so ... Joe liebt Katzen und ich möchte alle Namen der aus der animals Tabelle in die people_with_pets Tabelle, zusammen mit "Joe" einfügen.

so, würde Ich mag zu select name from animals where type like 'cats';

und legen die resultierenden Werte zusammen mit "Joe" in (in diesem Fall 2) neue Zeilen in people_with_pets.

Ich bin mir nicht sicher, ob die Insert-Auswahl mir das bringt, es scheint, als könnte es, aber ich bin mir nicht sicher, wie man es benutzt.

Antwort

1

INSERT INTO people_with_pets (Personen_Name, Haustiere_Name) SELECT 'Joe', Name FROM Tiere WHERE Typ = 'Katze';

4

EINFÜGEN in people_with_pets SELECT 'Joe', Name FROM Tiere WHERE type = 'cat';

0

Ich nehme an, was Sie tun möchten, ist, alle Katzentypen Joe zuzuordnen und in die Tabelle einzufügen, um die persons_name Joe zusammen mit anderen Katzennamen anzuzeigen, indem Sie eine einzelne INSERT SELECT-Anweisung verwenden.

So ist es, was ich tat:

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

Das Ergebnis zeigen sollten Sie diese:

mysql> select * from people_with_pets; 

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

3 rows in set (0.00 sec)

+0

Entschuldigung bitte diese Art beachten = ' Katze 'ist genauer als Typ wie' Katze '. Als ob Sie einen Wels vom Tiertyp hätten, könnten die Dinge verwirrend werden. Obwohl für die aktuelle Situation beide das gleiche Ergebnis liefern werden. – user3068895