Вставить в один столбец, выбрав другой столбец в другой таблице, но как заполнить второй столбец


У меня есть таблица, которая имеет два столбца я бы заполнил один из столбцов, выбрав другие данные столбца таблицы, но как я могу заполнить следующий столбец, потому что я не могу использовать значение. Вот код

INSERT INTO Numbers(number, val) SELECT LaptopID FROM Laptop WHERE Laptop.Pid = 2 

Как вы видите, столбец "val" остался пустым, как я могу его заполнить?

6 10

6 ответов:

Используйте NULL, Если столбец позволяет:

INSERT INTO Numbers(number, val)
SELECT LaptopID, NULL
FROM Laptop WHERE Laptop.Pid = 2

Или используйте предполагаемое (жестко заданное) значение, которое вы хотите.

Если число:

INSERT INTO Numbers(number, val)
SELECT LaptopID, 2
FROM Laptop WHERE Laptop.Pid = 2

Или если текст:

INSERT INTO Numbers(number, val)
SELECT LaptopID, 'val'
FROM Laptop WHERE Laptop.Pid = 2

Если у вас нет соответствующего значения, которое нужно ввести в число; тогда вы можете просто поставить ноль или нуль:

Что-то вроде этого- - -

INSERT INTO numbers (number, val)
SELECT NULL, laptopid
  FROM laptop
 WHERE laptop.pid = 2

Вы бы добавили его в качестве аргумента на SELECT. Например:

INSERT INTO Numbers(number, val)
    SELECT LaptopID, 'val'
    FROM Laptop
    WHERE Laptop.Pid = 2 

ИМХО, вам нужно внутреннее соединение с той другой таблицей, что-то вроде этого:

INSERT INTO Numbers(number, val) SELECT L.LaptopID, OT.OTHER_COLUMN FROM Laptop L 
INNER JOIN OTHER_TABLE OT ON L.SOME_COLUMN = OT.ANOTHER_SOME_COLUMN 
WHERE Laptop.Pid = 2 

SQLCE не поддерживает обновление нескольких таблиц и т. д., Поэтому я использовал следующий метод

SELECT Laptop.LaptopID, Table2.val FROM Laptop, Table2 WHERE
Laptop.Pid = 2  or where laptop.pid= table2.pid

Затем массовая вставка с использованием http://sqlcebulkcopy.codeplex.com/

Надеюсь, это поможет :)

INSERT INTO answer(userans) VALUES(OptionA) Select username From answer WHERE username= 'Name';

Я хочу добавить данные в столбец со ссылкой на другой столбец в той же таблице.