Форумы портала PHP.SU » » Работа с СУБД » вставить в таблицу два значения, одно из них бд

Страниц (1): [1]
 

1. Еугений - 14 Марта, 2016 - 16:17:00 - перейти к сообщению
Нужно мне вставить в таблицу два значения. одно мне известно, другое из БД.

Как то так
insert into tag_book (tag_id, book_id) values ((select id from tags where name="хлеб"), 777)

Короче, book_id в моем случае это 777, а tag_id это айди тега "хлеб", его вытаскиваем select-ом.

Запрос не работает. Можно ли реализовать то что я хочу?
2. Мелкий - 14 Марта, 2016 - 16:24:09 - перейти к сообщению
Я предпочитаю insert ... select с константами за корректную работу в случае 0 или больше 1 строки в результате.
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO tag_book (tag_id, book_id) SELECT id, 777 FROM tags WHERE name="хлеб"


Но ваш запрос выглядит тоже рабочим, в чём проявляется его "не работает"?
3. Еугений - 14 Марта, 2016 - 16:30:39 - перейти к сообщению
Мелкий пишет:
Я предпочитаю insert ... select с константами за корректную работу в случае 0 или больше 1 строки в результате.
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO tag_book (tag_id, book_id) SELECT id, 777 FROM tags WHERE name="хлеб"


Но ваш запрос выглядит тоже рабочим, в чём проявляется его "не работает"?


спасибо. Мой код вставлял значение 0 в поле book_id, или в tag_id, забыл хотя теги в таблице присутствовали. А ещё код вставлял только одну запись, даже если выборка большая select id from tags where name="хлеб" or name = "еще"

 

Powered by ExBB FM 1.0 RC1