/ / SQL INSERT instrukcja dla DWÓCH TABLI w czasie z INNER JOIN - sql, insert, inner-join, mysql

Instrukcja SQL INSERT dla DWÓCH TABEL na czas z INNER JOIN - sql, insert, inner-join, mysql

Mam dwie tabele hello i login_table a poniżej jest ich struktura

user_info
-------
some_id | name | address

login_table
-------
id | username | password

some_id i id są indeksami autoinkrementacji.

Teraz jak mogę korzystać INSERT oświadczenie z INNER JOIN w SQL

obecnie chcę dodać poniżej te same dane some_id i id

`name` = John
`address` = wall street
`username` = john123
`password` = passw123

poniżej pokazy kodu, co próbowałem do tej pory.

insert into login_table lt
INNER JOIN user_info ui ON ui.some_id = lt.id
(ui.name, ui.address, lt.username, lt.password)
values
("John", "wall street", "john123", "passw123")

I to nie jest jedyna wartość, chcę dodać więcej niż jedną wartość na raz.

dzięki za pomoc.

Odpowiedzi:

10 dla odpowiedzi № 1

Jeśli chcesz wykonać dwa INSERT operacje atomowo, użyj transakcji:

START TRANSACTION;
INSERT INTO login_table (username, password) VALUES ("john123", "passw123");
INSERT INTO user_info (name, address) VALUES ("John", "wall street");
COMMIT;

N.B. Twój silnik pamięci masowej musi obsługiwać transakcje, aby działał (np. InnoDB).

Aby wstawić wiele wartości jednocześnie do tabeli, użyj formularza wielu wierszy INSERT. Jak stwierdzono w instrukcja:

INSERT używane instrukcje VALUES składnia może wstawiać wiele wierszy. Aby to zrobić, dołącz wiele list wartości kolumn, z których każda jest zamknięta w nawiasie i oddzielona przecinkami. Przykład:

WŁÓŻ W nazwa_tabeli</ em> (a, b, c) WARTOŚCI (1,2,3), (4,5,6), (7,8,9);

Lista wartości dla każdego wiersza musi być zamknięta w nawiasach. Poniższa instrukcja jest niedozwolona, ​​ponieważ liczba wartości na liście nie odpowiada liczbie nazw kolumn:

WŁÓŻ W nazwa_tabeli</ em> (a, b, c) WARTOŚCI (1,2,3,4,5,6,7,8,9);

VALUE jest synonimem VALUES w tym kontekście. Ani nie implikuje niczego o liczbie list wartości i może być używany niezależnie od tego, czy istnieje lista pojedynczych wartości, czy wiele list.


0 dla odpowiedzi nr 2

Wstawianie do dwóch tabel jest niemożliwe. Druga część pytania jest możliwa: możesz wstawić wiele wierszy w jednym wyrażeniu:

insert into some_table(col1, col2) values (1,2), (3,4), (5,6);