Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;MySQL返回一个空的结果集_Mysql_Join_Random - Fatal编程技术网

&引用;MySQL返回一个空的结果集

&引用;MySQL返回一个空的结果集,mysql,join,random,Mysql,Join,Random,我有一张桌子(表1),用来存放一些人。我需要逐个选择random并添加到另一个表(表2)。如果添加了一个人,则可以再次选择该人,直到所有人都被选中。这是我的疑问: 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_

我有一张桌子(表1),用来存放一些人。我需要逐个选择random并添加到另一个表(表2)。如果添加了一个人,则可以再次选择该人,直到所有人都被选中。这是我的疑问:

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”为空,因此,保留要生成的人员。为什么结果为空?

内部联接从两个表返回匹配的行,如果其中一个为空,结果将始终为空

您可能想使用

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

内部联接的对立面?不是真正的对立面,但您可能希望使用左联接。我已经用您可能需要的内容编辑了答案。请花些时间了解连接类型