Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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
Php 显示数据库中JOIN子句中的所有记录_Php_Mysql_Join - Fatal编程技术网

Php 显示数据库中JOIN子句中的所有记录

Php 显示数据库中JOIN子句中的所有记录,php,mysql,join,Php,Mysql,Join,我有两张表,分别是voter和log_vote。投票者包含投票者的数据,而log_vote包含已投票的投票者的数据 现在我想让那些没有投票的选民看看。我在两个表中都尝试过使用JOIN,但都会失败,因为JOIN子句只显示已经投票的投票者 以下是我尝试过的代码片段: SELECT * FROM voter INNER JOIN log_vote ON log_vote.nim = voter.nim 如何仅显示未投票的选民?使用JOIN是正确的方法吗?提前谢谢,我会非常感谢你的回答 *注意:我使用

我有两张表,分别是voter和log_vote。投票者包含投票者的数据,而log_vote包含已投票的投票者的数据

现在我想让那些没有投票的选民看看。我在两个表中都尝试过使用JOIN,但都会失败,因为JOIN子句只显示已经投票的投票者

以下是我尝试过的代码片段:

SELECT * FROM voter INNER JOIN log_vote ON log_vote.nim = voter.nim
如何仅显示未投票的选民?使用JOIN是正确的方法吗?提前谢谢,我会非常感谢你的回答


*注意:我使用的是PHP技术。不知道PHP是否能解决我的问题。

我认为最直接的方法不存在:

如果要使用联接,则适当的版本为left join:


我认为最直接的方法是不存在的:

如果要使用联接,则适当的版本为left join:


这可以通过左连接来完成,这样连接条件就不会过滤那些没有回答的人,然后过滤所有没有匹配项的人,如下所示:

SELECT voter.* FROM voter
LEFT JOIN log_vote ON log_vote.nim = voter.nim
WHERE log_vote.nim is null

这可以通过左连接来完成,这样连接条件就不会过滤那些没有回答的人,然后过滤所有没有匹配项的人,如下所示:

SELECT voter.* FROM voter
LEFT JOIN log_vote ON log_vote.nim = voter.nim
WHERE log_vote.nim is null
你也可以这样做

SELECT * FROM voter LEFT JOIN log_vote ON log_vote.nim = voter.nim 
WHERE log_vote.nim IS NULL
你也可以这样做

SELECT * FROM voter LEFT JOIN log_vote ON log_vote.nim = voter.nim 
WHERE log_vote.nim IS NULL
你可以用

不在

这个代码应该可以工作

从表决器v中选择*其中v.nim不在从log_vote lv中选择lv.nim

您应该提供关于每个表的属性的更多信息。您确定每个表中都有nim属性吗

您可以使用

不在

这个代码应该可以工作

从表决器v中选择*其中v.nim不在从log_vote lv中选择lv.nim


您应该提供关于每个表的属性的更多信息。您确定每个表中都有nim属性吗

也可以这样做吗?我和gordon都贴了这个答案也可以吗?我和戈登都发了这封信,很有效。顺便问一下,v和lv是什么意思?为什么它可以用来替换投票人和日志投票人?@Alviantasablancas。它们称为表别名。它们是表格的缩写,很有效。顺便问一下,v和lv是什么意思?为什么它可以用来替换投票人和日志投票人?@Alviantasablancas。它们称为表别名。它们是表的缩写。是的,nim是主键。只需测试它,它就会显示'lv.nim'列的错误。是的,nim是主键。只是测试它,它显示了'lv.nim'列的错误。解决了,非常简单。非常感谢。Alviantasablancas没有问题:解决了,非常简单。非常感谢。没有问题@Alviantasablancas: