Php 显示数据库中JOIN子句中的所有记录
我有两张表,分别是voter和log_vote。投票者包含投票者的数据,而log_vote包含已投票的投票者的数据 现在我想让那些没有投票的选民看看。我在两个表中都尝试过使用JOIN,但都会失败,因为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是正确的方法吗?提前谢谢,我会非常感谢你的回答 *注意:我使用
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: