Так у меня есть таблицы, которые выглядят примерно так:SQL Вставка и выбор нескольких столбцов?
связи (звонки, сделанные)
Timestamp FromIDNumber ToIDNumber GeneralLocation
2012-03-02 09:02:30 878 674 Grasslands
2012-03-02 11:30:01 456 213 Tundra
2012-03-02 07:02:12 789 654 Mountains
2012-03-02 08:06:08 458 789 Tundra
И я хочу, чтобы создать новую таблицу, которая имеет все различные FromIDNumber
и ToIDNumber
«с.
Это SQL Fiddle для этого.
Это работает:
INSERT INTO CommIDTemp (`ID`)
SELECT DISTINCT Communication.FromIDNumber
FROM Communication
UNION DISTINCT
SELECT DISTINCT Communication.ToIDNumber
FROM Communication;
и я получил:
ID
878
456
789
674
213
654
365
Но мне интересно, если есть более эффективный способ, потому что набор данных, который у меня есть миллионы и миллионы строк, и я Бесполезный Не знаю о производительности UNION DISTINCT
.
Первоначально я пытался что-то вроде
INSERT INTO CommIDTemp (`ID`)
SELECT DISTINCT Communication.FromIDNumber
AND Communication.ToIDNumber
FROM Communication;
, но это не работает ... есть ли другой способ сделать это более эффективно? Я довольно новичок в SQL, поэтому любая помощь будет очень признательна, спасибо!
'A и B' попытается вставить логическое' AND' результат двух строк. 'select 'a' и 'b'' -> result =' 0'. –
Ох .. Я не знал этого ... спасибо – ocean800
Это одноразовая задача? Так что не имеет значения, сколько времени это займет? Что вы будете делать с добавлением новых значений по мере поступления большего количества данных? –