【问题标题】:"MySQL returned an empty result set“MySQL 返回了一个空的结果集
【发布时间】:2014-04-05 14:14:38
【问题描述】:

我有一张桌子(table1),用来存放一些人。我需要一个一个地随机选择并添加到另一个表(table2)。如果添加了一个人,则可以再选择一次,直到所有人都被选中。这是我的查询:

SELECT * FROM people inner join people_generated on people.id = people_generated.id WHERE people.id != people_generated.id_people ORDER BY RAND() LIMIT 1 

第二个表“people_generated”是空的,所以留下来生成的人。为什么结果为空?

【问题讨论】:

  • 请花点时间了解 JOIN 类型

标签: mysql join random


【解决方案1】:

INNER JOIN 从两个表中返回匹配的行,如果一个为空,则结果始终为空。

你可能想要使用

SELECT * FROM people LEFT JOIN people_generated on people.id = people_generated.id WHERE people_generated.id_IS NULL ORDER BY RAND() LIMIT 1 

【讨论】:

  • 内连接的反义词?
  • 并非完全相反,但您可能想要使用 LEFT JOIN。我已经用您可能需要的内容编辑了答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多