【发布时间】:2011-09-25 02:40:33
【问题描述】:
这是最初的问题:
好的,这是我的问题,我有两个 表,一个命名的名字和 其他命名的姓氏。我是什么 在这里尝试做的是找到100个 这些可能的组合 测试数据的名称。名字 表中有 5494 个条目 列,并且 lastnames 表有 单列中有 88799 个条目。这 唯一能查询到的 想出有一些结果的是:
SELECT * FROM (SELECT * FROM firstnames ORDER BY rand()) f LEFT JOIN (SELECT * FROM lastnames ORDER BY rand()) l ON 1=1 limit 10; The problem with this code is它选择 1 个名字并给出 每个可以与之搭配的姓氏。 虽然这是合理的,但我会有 将限制设置为 500000000 为了得到所有的组合 可能没有只有 20 首 名字(我宁愿不杀我的 服务器)。但是,我只需要 100 随机生成的条目 测试数据,我将无法 用这段代码得到它。任何人都可以 请给我一些建议?
- 上面的问题已经回答了,我需要关于下面问题的建议。我只是提供它作为背景。
我想将另一个表加入到名为 status 的组合中。该表在一列中有 5 个条目,每当我尝试将其连接到另外两个时,它最终都会再次重复另外两个表,以便状态标签适合它们中的每一个。我唯一获得轻微成功的是:
SELECT *
FROM ( SELECT firstnames FROM firstnames ORDER BY RAND( ) LIMIT 5 ) AS First
JOIN ( SELECT lastnames FROM lastnames ORDER BY RAND( ) LIMIT 5 ) as Last
JOIN ( SELECT status FROM status ORDER BY RAND( ) LIMIT 1) AS Status ON 1=1;
虽然名字和姓氏在此查询中不重复,但每个名字都只列出一个状态标签。非常感谢你们的帮助!
【问题讨论】:
-
表格是否有
id字段(主键)? -
不,他们没有。我最初确实在每张桌子上都有它们,但它造成了混乱。