2012-04-24 57 views
0

我有兩個表具有一對多關係表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

回答

2

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

0
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中。