2013-08-30 6 views
0

У меня есть таблица с именем notif, где хранятся уведомления с меткой времени и topic_id. У меня есть другая тема, в которой хранятся имена тем. Теперь у меня есть имя темы и содержание notif, и я хочу вставить их в notif-таблицу. Поэтому мне нужно выбрать topic_id из темы, основанной на имени, и вставить ее вместе с текстом notif и текущим временем в таблицу notif.MySQL INSERT с SELECT

Можно ли это сделать в одном запросе?

public function insert($text, $name) { 
$query = "INSERT INTO notif(content, topic, timestamp) 
      SELECT $text, topic_id, NOW() FROM topic WHERE name = $name" 
} 
+5

Да, это можно сделать. – Kermit

+0

покажите нам, что у вас есть, и что/не работает. – user2366842

+0

Это то, что у меня есть до сих пор, и я не получаю исключение, но ничего не записывается в базу данных – user2734138

ответ

0

Попробуйте что-то вроде этого:

Insert Into notif (topic_ID, NotifText,theTimestampe) (Select topic_ID,NotifText,GetDate() from topic Where name = @param) 

FYI, тестировалась.

+0

Вырезать круглые скобки вокруг 'SELECT' – Kermit

+0

Скобки не являются обязательными, по крайней мере, в SQL Server. Я предпочитаю их, потому что они помогают сделать запрос более читаемым, на мой взгляд. – Elias