sql, добавление в таблицу со значением из другой таблицы - PullRequest
1 голос
/ 13 сентября 2011

Итак, у меня есть таблица A и таблица B. Я вставляю запись в таблицу A, и это создаст идентификатор в таблице A. Теперь я хочу использовать этот идентификатор, чтобы вставить другую запись в таблицу B. Запись, которую я создаю в таблице A, имеет уникальное поле, которое я могу найти, чтобы получить запись, которую я создал. Спасибо всем, кто пытается помочь заранее!

Ответы [ 3 ]

1 голос
/ 13 сентября 2011

Может немного чище?

INSERT INTO table_b
SELECT
  id,
  value2
FROM table_a
WHERE unique_column = 'value'
0 голосов
/ 13 сентября 2011

При использовании PHP:

Полагаю, когда вы говорите "это сгенерирует идентификатор", вы имеете в виду, что столбец - AUTO_INCREMENT, поэтому идентификатор будет установлен MySQL.

Тогда вы должны использовать mysql_insert_id() или PDO::lastInsertId с PDO.

Это должно выглядеть так:

mysql_query("INSERT INTO table_A ...");
$last_id_in_table_A = mysql_insert_id();
mysql_query("INSERT INTO table_B (id_table_A) VALUES ($last_id_in_table_A)");
0 голосов
/ 13 сентября 2011

Как-то так должно работать.

INSERT INTO table_b
(column1, column2, etc)
VALUES
(
    ( SELECT id FROM table_a WHERE unique_column = 'value' LIMIT 1 ),
    value2,
    etc
)

В качестве альтернативы, если вы используете PHP, вы можете использовать mysql_insert_id или аналогичную функцию, чтобы получить идентификатор, с которым строка была вставлена ​​в таблицу A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...