我有两张表格:custassets
和tags
。 生成一些测试数据。 INSERT INTO a many-to-many table with a SlectT
, which have arbitrary rows from each (so that a arbitrary main key from one table is paired with a arbitrary main key from the second). 令我惊讶的是,正如我第一次认为的那样,这 t不易,因此我坚持这样做,教我。
这里是我第一次尝试。 我选择了10个<条码>中标/代码>和3个<条码>标/代码>,但两者在每种情况下都是相同的。 第一个表格是固定的,但我想抽出所分配的标签。
SELECT
custassets_rand.id custassets_id,
tags_rand.id tags_rand_id
FROM
(
SELECT id FROM custassets WHERE defunct = false ORDER BY RANDOM() LIMIT 10
) AS custassets_rand
,
(
SELECT id FROM tags WHERE defunct = false ORDER BY RANDOM() LIMIT 3
) AS tags_rand
结果是:
custassets_id | tags_rand_id
---------------+--------------
9849 | 3322 }
9849 | 4871 } this pattern of tag PKs is repeated
9849 | 5188 }
12145 | 3322
12145 | 4871
12145 | 5188
17837 | 3322
17837 | 4871
17837 | 5188
....
随后,我尝试了以下做法:在<代码>SlectT栏目表上填写第二栏目
SELECT
custassets_rand.id custassets_id,
(SELECT id FROM tags WHERE defunct = false ORDER BY RANDOM() LIMIT 1) tags_rand_id
FROM
(
SELECT id FROM custassets WHERE defunct = false ORDER BY RANDOM() LIMIT 30
) AS custassets_rand
结果:
custassets_id | tags_rand_id
---------------+--------------
16694 | 1537
14204 | 1537
23823 | 1537
34799 | 1537
36388 | 1537
....
这在描述性语言中是容易的,我确信,可以通过储存程序或临时表格来做。 但我只能用<条码>来做。 INSERT INTO SlectT?
我确实想选择使用随机功能的初级钥匙,但不幸的是,这两个表格的主要钥匙在加固顺序上存在差距(因此,每个表格可能选择一个空档)。 否则就会被罚款!