Mysql插入从条件和限制的另一个表

问题描述:

我有两个表具有一对多关系表1(一),表2(很多)。Mysql插入从条件和限制的另一个表

table1 has (t1_id) as KEY 
table2 has (t2_id) as KEY and t2_t1_id as as refference to table1 

现在table1我需要拥有table2id列(rand_t2_id),我真的不关心哪一个

这是我尝试

INSERT INTO table1 (rand_t2_id) 
SELECT t2_id 
FROM table2 
WHERE table1.t1_id = table2.t2_t1_id; 

还有查询如果需要的话,需要在某处进行限制构建。我只需要表2中的一个ID

在这里没有运气寿,任何人都知道一个修复?

+1

你是什么意思,你不关心哪个t2_id是从每个rand_t2_id引用的? – 2012-04-24 07:36:36

+0

对不起,如果你们不明白。我很高兴有人做到了。 – 2012-04-24 07:44:08

IMO你可以尝试

UPDATE table1 t1 INNER JOIN table2 t2 
    ON t1.t1_id = t2.t2_t1_id; 
SET t1.rand_t2_id = t2.t2_id 

我假设你已经有一个在你的table1命名rand_t2_id列。

+0

正是我需要的。它工作得很好,谢谢! – 2012-04-24 07:43:36

INSERT INTO table1 (t2_t1_id, rand_t2_id) 
SELECT t2_id 
FROM ( SELECT t2_id, t2_t1_id 
     FROM table2 
     ORDER BY RAND()) AS h 
GROUP BY t2_t1_id 
ON DUPLICATE KEY UPDATE rand_t2_id = VALUES(rand_t2_id) 

我想这就是你想要的?

该查询会将随机t2_id插入到相关表1中。