tabella - update records in mysql




MySQL inserendo più record con una selezione (2)

Questo è MS SQL, ma penso che tu possa fare qualcosa del genere:

DECLARE @status_id int
SELECT @status_id = status_id FROM car_status WHERE status = 'working'

INSERT INTO cars (type, status_id)
SELECT 'GM', @status_id
UNION
SELECT 'Toyota', @status_id
UNION...

C'è qualche ragione per cui vuoi farlo in una singola dichiarazione? Personalmente, scriverei semplicemente una frase di inserimento per ogni riga. Immagino che potresti anche creare una tabella temporanea con tutti i nuovi tipi e poi unirla con l'id di stato.

Ho una "tabella del dizionario" chiamata car_status che ha una colonna "id" e una colonna "status".

car_status
id     status
1      broken
2      fixed
3      working
4      fast
5      slow

Ho una tabella chiamata auto con le colonne: id, type, status_id

cars
id    type    status_id
1     jeep     1
2     ford     3
3     acura    4

Spero di inserire più record in auto e dare loro tutti lo stato associato a "lavoro". Qual è il modo migliore / più semplice? So che posso interrogare e trovare lo status_id che sta "funzionando", e poi fare una query di inserimento, ma c'è comunque da fare con una query di inserimento usando un join o select?

Ho provato cose del genere:

INSERT INTO cars (type, status_id) 
VALUES 
('GM',status_id),
('Toyota',status_id),
('Honda',status_id) 
SELECT id as status_id 
FROM car_status 
WHERE status = "working"

Grazie!


DECLARE temp_status_id INT;
SELECT status_id 
   INTO temp_status_id 
   FROM car_status;
INSERT INTO cars (type, status_id) 
    VALUES ('GM',temp_status_id),
           ('Toyota',temp_status_id),
           ('Honda',temp_status_id);




insert