views:

76

answers:

1

I have a php script that process keywords from a mysql table "keywords" (columns: id - keyword) and then it saves data into another table "data" (column: id[foreign key keywords.id] - dataname - datavalue).

My problem is that when the script is ready to save the data I only have the keyword and not the id.

So is there a way I can get the keyword id and save the data in one mysql query? (i mean without having to do something like SELECT id from keywords where keyword = keyword, and then run another query for the INSERT.

+9  A: 

If selecting and modification tables are different - you can use simple nested query:

INSERT INTO `data` (`id`, `dataname`) VALUES
(
    (SELECT `id` FROM `keywords` WHERE `keyword` = 'keyworrrrrd'),
    'blabla'
)

or

INSERT INTO `data` (`id`, `dataname`)
SELECT `id`, 'blabla' FROM `keywords` WHERE `keyword` = 'keyworrrrrd'
zerkms
+1 for "keyworrrrrd"
Frankie
Thanks i think that will do the job.
jarkam
@Frankie: i've written in that way to differ `keyword` as field and specific keyword in table ;-)
zerkms
@zerkms not only did it work like a charm as it made me smyle... ;)
Frankie