1

1対多の関係を持つ2つのテーブルがあります。table1(1)、table2(多)。

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

ここで、 fromを保持するtable1列(rand_t2_id)が必要ですが、どちらを保持するかはあまり気にしません。idtable2

これは私が試したクエリです

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

それが必要な場合は、どこかに制限を構築する必要もあります。table2からIDが1つだけ必要です

ここで運がない、誰かが修正を知っていますか?

4

2 に答える 2

5

あなたが試すことができるIMO

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

に名前が付けられた列がすでにあると思いrand_t2_idますtable1

于 2012-04-24T07:39:39.213 に答える
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を関連するtable1に挿入します。

于 2012-04-24T07:39:30.803 に答える