2015-09-16 7 views
1

Шаг 1) Найдите id s в пользователей таблица, которой нет в таблице игроков. Шаг 2) Вставьте в таблицу игроков с отсутствующими id sОбъединить INSERT INTO и SELECT на MySQL

Поэтому я должен объединить эти два запроса. (Давать результат запроса на выборку в виде списка в INSERT INTO запроса)

SELECT users.uid 
FROM users 
WHERE users.uid NOT IN (select uid from players); 

INSERT INTO players (uid) 
VALUES() 

Что такое чистый способ сделать это?

+0

использование вставки в

выбрать .... синтаксис https://dev.mysql.com/doc/refman/5.1/en/insert-select.html – Rasika

ответ

2

Разместить запрос на выборку ниже запроса вставки и удаления values():

INSERT INTO players (uid) 
SELECT users.uid 
FROM users 
WHERE users.uid NOT IN (select uid from players); 

EDIT на основании комментариев
Простой способ будет использовать INSERT IGNORE - Это будет в основном вставить все uid, которые не являются в таблице players «s и проигнорировать остальные:

INSERT IGNORE INTO players (uid) 
SELECT users.uid 
FROM users 
+0

Ну вставки игнорировать бы быть проще – Strawberry

+0

@Strawberry спасибо, я обновил свой ответ, это хорошо с вами? –

+0

Отлично со мной! Но это не должно быть ПЕРВИЧНЫМ. Просто нужно быть УНИКАЛЬНЫМ! – Strawberry

0
INSERT INTO players 
SELECT users.uid 
FROM users 
WHERE users.uid NOT IN (select uid from players); 
0

Попробуйте это:

INSERT INTO users (uid) 
(SELECT users.uid 
    FROM users 
    LEFT JOIN players ON users.uid = players.uid) 
    WHERE players.uid IS null)