3

I'd like to add a value to the values provided by a SELECT INTO statement.

Given the table named foo:

+----+
| id |
+----+
| 1  |
| 2  |
| 3  |
+----+

I would like to populate the table bar with:

+----+------+
| id | type |
+----+------+
| 1  | R    |
| 2  | R    |
| 3  | R    |
+----+------+

I'd imagine this looking something like this:

SELECT foo.id, type INTO bar FROM foo LEFT JOIN 'R' AS type;

... unfortunately this doesn't work. Can anyone tell me how to do this please

I'm using both mysql and mssql

Edd
  • 8,402
  • 14
  • 47
  • 73

2 Answers2

10
SELECT foo.id, 'R' AS type INTO bar FROM foo;

In MySQL this would normally be done with:

Lazy with no indexes

CREATE TABLE bar SELECT id, 'R' AS type FROM foo;

Nicer way (assuming you've created table bar already)

INSERT INTO bar SELECT id, 'R' AS type FROM foo;
James C
  • 14,047
  • 1
  • 34
  • 43
4
SELECT foo.id
     , 'R'
INTO bar (id, type)
FROM foo

For MySQL use:

INSERT INTO bar (id, type)
  SELECT foo.id
       , 'R'
  FROM foo
ypercubeᵀᴹ
  • 113,259
  • 19
  • 174
  • 235