I want to copy an existing MySQL table over to a duplicate table, but with two additional fields populated by data retrieved from other queries. It’s for a forums software that never captured the original creation date of the thread (it always overwrote the time with the most recent reply).
So I want to take the existing table, ‘threads’
thread_id
thread_author
thread_subject
thread_last_reply_date
and create a new table, ‘new_threads’ of the same structure, but with two extra fields:
thread_id
thread_author
thread_subject
thread_last_reply_date
thread_creation_date
thread_last_poster_id
Both thread_last_reply_date and thread_last_poster_id could be populated from dependent queries.. For example, last_poster_id with a query of:
SELECT post_author FROM posts WHERE thread_id = ? AND post_date = thread_last_reply_date
And for the thread_creation_date:
SELECT MIN(post_date) FROM posts WHERE thread_id = ?
That’s essentially the process I would do with a PHP script.. A series of SELECTs and then inserting records one by one. Any advice or direction on how to do this type of process in pure SQL would be crazy helpful (if it’s possible).
EDIT: an example of the technique would be helpful. I don’t need an exact answer for the above. I’m sure everyone has better things to do.
To create your target table (empty):
and to populate it:
(untested)