|  | Posted by dhek on 02/22/07 18:03 
"Ed Murphy" <emurphy42@socal.rr.com> wrote in message news:45ddcea3$0$27110$4c368faf@roadrunner.com...
 > dhek wrote:
 >
 >>>> I have a very simple issue: for simplicity lets say I have 2 tables, A
 >>>> and
 >>>> B.
 >>>>     - Table A contains 5 fields. Amongst these there is a 'id'-field
 >>>> which
 >>>> is but a reference to table B.
 >>>>     - Table B contains 2 fields: 'id' and 'text'
 >>>>
 >>>> In order to post data to table A I thus (from a known text value that
 >>>> should
 >>>> match 1 value in B.text) have to get the value of B.text before
 >>>> performing
 >>>> the UPDATE/INSERT statement.
 >>>>
 >>>> How is this possible?
 >>>>
 >>>> I would have thought something like
 >>>>
 >>>> INSERT INTO A (val1, val2, val3, ID, val4)
 >>>> VALUES ('x1','x2','x3', SELECT id FROM B WHERE [SOME TEXT VALUE] =
 >>>> B.text,
 >>>> 'x4')
 >>>>
 >>>> however this is not possible, so I'm lost - not experienced in the arts
 >>>> of
 >>>> SQL:-)
 >>>>
 >>>> Hope someone can help.
 >>>>
 >>>> Best Regards,
 >>>> Daniel
 >>> Try something more like this:
 >>>
 >>> INSERT INTO ATable(val1, val2, val3, ID, val4)
 >>> SELECT 'x1', 'x2', 'x3', b.id, 'x4'
 >>> FROM BTable b
 >>> WHERE b.Text = ['Your Text Here']
 >>
 >> But this is not possible since table B only contains 2 fields (id, and
 >> text) or am I misunderstandig u?
 >
 > The SELECT portion only gets one of its five values (b.id) from
 > table B; it gets the other four from the values provided directly
 > on the SELECT line (which, in practice, might instead be input
 > parameters to a stored procedure).
 >
 > Consider this hypothetical alternative:
 >
 > INSERT INTO ATable(val1, val2, val3, ID, val4)
 > SELECT c.x1, c.x2, c.x3, b.id, c.x4
 > FROM BTable b
 >   JOIN Ctable c on b.id = c.id
 > WHERE b.Text = ['Your Text Here']
 >
 > Obviously x1 through x4 aren't taken from table B in this case.  In
 > Utahduck's example, x1 through x4 aren't taken from /any/ table.
 
 He maaaaan, I totally get it now and it works like a bloody charm. If I
 could, I would award u guyz 1000000 points each - I really appreciate it -
 thanks a lot.
 
 Best Regards,
 Daniel
  Navigation: [Reply to this message] |