2014-09-12 34 views
0

環SQL查詢,我有這樣的選擇查詢:與插入

SELECT * FROM `jos_users` 
left join jos_clientes on jos_users.id = jos_clientes.id_user 
where jos_clientes.id_user is null 
and email like '%novousuario%''; 

該查詢返回我,有沒有對jos_clientes表中的行所有jos_users。

的jos_clientes模式是:

create table jos_clientes(
    id int(11) not null auto_increment primary key, 
    id_user int(11) not null, 
    codigo_cpf_cnpj varchar(20) not null, 
    type varchar(4) not null 
); 

是否有,對於每一行,我插入jos_clientes新行什麼辦法?

foreach jos_users 
    INSERT INTO jos_clientes VALUES (null, jos_users.id_user, jos_users.username, IF(length(jos_users.username)>11,'cnpj','cpf')); 

我該如何用mysql在mysql上做到這一點?

回答

2

可以使用INSERT INTO ... SELECT FROM方法:

INSERT INTO jos_clientes (id_user, username, code) 
    SELECT jos_users.id_user, jos_users.username, IF(length(jos_users.username)>11,'cnpj','cpf') FROM jos_users 

你需要具體談談你填充雖然除非列完全匹配的字段。

根據您的需要調整SELECT子語句,並確保它生成的結果可以直接插入到jos_clientes表中。

0

嘗試以下查詢:

INSERT INTO jos_clientes SELECT null,d.id_user, d.username,IF(length(d.username)>11,'cnpj','cpf')) 
    FROM jos_users d;