I don't think that will work because Context_ID is not found in 'targets_list' hence the error. That's why I thought the Context_ID field was being assigned with the value of @ContextID. That's the only way we can get this value.
What I would like is Context_ID to be filled with the user var. @Context_ID and the Target_IDs found in both the tables. So if the input is 3, then each entry should be 3 and any target ID found with the flags associated with context 3 applied. These flags are processed earlier in this same procedure and the IDs are put into the APPLICABLE_TARGET_IDS temporary table. steve--- Steven J Orton Software Engineer Northrop Grumman Mission Systems Middletown, RI 02842 -----Original Message----- From: Peter Brawley [mailto:[EMAIL PROTECTED] Sent: Wed 6/28/2006 4:01 PM To: Orton, Steve Cc: mysql@lists.mysql.com Subject: Re: Tough query to crack Steve, > INSERT INTO master_context_list (Context_ID, Target_ID) > SELECT Context_ID = @ContextID, targets_list.Target_ID FROM targets_list > WHERE Target_ID IN ( SELECT Target_ID FROM #APPLICABLE_TARGET_IDS ) [EMAIL PROTECTED] tells the server to return 1 when the column value of context_id is equal to the value of the user variable @contextID, and otherwise zero. Not likely what you intend. Apart from that, does the following, in standard SQL, represent what you are trying to accomplish? INSERT INTO master_context_list (Context_ID, Target_ID) SELECT l.Context_ID, l.Target_ID FROM targets_list AS l INNER JOIN applicable_target_ids AS a USING (target_id); PB ----- Orton, Steve wrote: > Hello fellow listers, > > I'm currently trying to reduce our TCO by incorporating this fine DBMS and > replacing the MS SQLServer we're using. I'm trying to re-implement the > stored procedures written for SQLServer to MySQL and have one that's tough to > figure out. > > This stored procedure basically finds ID values in one table that fit > criteria based on set flags in the table and puts them in another table along > with a context value that is assigned to the 'flag' settings. This > 'master_context_list' table holds all the IDs assigned to each context value. > So when the flags are changed or another context is created, the table is > updated with new ID values that fit the new criteria. > > The stored procedures make extensive use of MS shortcuts to create tables, > assign values, etc. This is the MS SQL statement: > > INSERT INTO master_context_list (Context_ID, Target_ID) > SELECT Context_ID = @ContextID, targets_list.Target_ID FROM targets_list > WHERE Target_ID IN ( SELECT Target_ID FROM #APPLICABLE_TARGET_IDS ) > > So this is taking all the Target IDs that match in both 'targets_list' and > the temporary table APPLICABLE_TARGET_IDS and inserting them into > 'master_context_list' along with the Context_ID with the value of @ContextID. > This sort of shorthand is nice for MS users, bad for the rest of us. > > When I try to run this in a MySQL stored procedure, I get this error: > "Unknown column 'db_context_ID' in field list" > > I know why it's failing but there's a failure in translation. Can anybody > figure out how to translate this into SQL that will work in MySQL? > > Thanks in advance for any help....steve--- > > Steven J Orton > Software Engineer > Northrop Grumman Mission Systems > Middletown, RI 02842 > > > -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.9.5/377 - Release Date: 6/27/2006 -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]