Thread: Simple SQL question, need help.

Simple SQL question, need help.

From
fyzfeech@yahoo.com (feech)
Date:
I'm pretty much an idiot, but I can't figure out how to do this:

I have a results DB with two fields: PlayerID and Position.  I also
have a players DB with two fields: ID and Name.

How do I insert a record into results with PlayerID selected from the
players DB and Position explicitly specified by me.

Something like:

INSERT INTO results (PlayerID, Position) values (SELECT players.id
from players WHERE name = 'Chuck', 4 );

That statement is trying to insert the player's ID (I only have his
name when inserting) and his position ( 4 in this case ), but it
doesn't work.

Totally frustrated,
feech

Re: Simple SQL question, need help.

From
Tom Lane
Date:
fyzfeech@yahoo.com (feech) writes:
> INSERT INTO results (PlayerID, Position) values (SELECT players.id
> from players WHERE name = 'Chuck', 4 );

You need to put parentheses around the sub-select used as an
expression:

INSERT INTO results (PlayerID, Position) values ((SELECT players.id
from players WHERE name = 'Chuck'), 4 );

A more conventional way to get the same result is

INSERT INTO results (PlayerID, Position)
  SELECT id, 4 FROM players WHERE name = 'Chuck';

            regards, tom lane