Php 组合两个Sql语句

Php 组合两个Sql语句,php,sql,Php,Sql,我正在尝试创建sql语句。将在数据库中以及投票表中找到一个随机用户id,visitoruser id=10尚未对随机确定的用户进行投票 $userid = 10 //1-Find a user randomly $query = $db->query("SELECT id FROM users ORDER BY RAND() LIMIT 1")->fetch(PDO::FETCH_ASSOC); $randid = $query["id"]; //2-Visitor have n

我正在尝试创建sql语句。将在数据库中以及投票表中找到一个随机用户id,visitoruser id=10尚未对随机确定的用户进行投票

$userid = 10
//1-Find a user randomly 
$query = $db->query("SELECT id FROM users ORDER BY RAND() LIMIT 1")->fetch(PDO::FETCH_ASSOC);
$randid = $query["id"];

//2-Visitor have not give vote to the user which we determine. This sql result will be empty
("SELECT * FROM votes WHERE userid = '{$userid}' AND receiver = '{$randid}'")
我必须合并这两条sql语句。我需要这个,因为该网站将打开一个用户配置文件,访问者没有给该用户投票。 谢谢

我以前使用过这些代码,但这些代码主要显示访问者投票的配置文件,所以我需要从投票表中添加检查

$query = $db->query("SELECT id FROM users ORDER BY RAND() LIMIT 1")->fetch(PDO::FETCH_ASSOC);
$randid = $query["id"];
header("location:index.php?id=$randid");

老实说,从你的描述我不明白你想做什么

但是要组合这两个查询,最简单的方法是将第一个作为子查询包含在第二个查询中

SELECT *
       FROM votes
       WHERE userid = '{$userid}'
             AND receiver = (SELECT id
                                    FROM users
                                    ORDER BY rand()
                                    LIMIT 1);
编辑:

您的评论让我相信您可能正在搜索以下内容:

SELECT *
       FROM users u
       WHERE NOT EXISTS (SELECT *
                                FROM votes v
                                WHERE v.receiver = u.id
                                      AND v.userid = '{$userid}')
       ORDER BY rand()
       LIMIT 1;
它从用户那里获取一条随机记录,其中不存在投票记录,该记录将来自用户的该用户作为接收者,用户ID等于访问者,或者10是什么


就是如果我理解正确的话,,Voces.receiver是另一个用户为其投票的用户,Voces.userid是投票的用户。

示例数据和所需结果将非常有用。我需要一个查找用户,但我没有提供votei。我需要一个语句,可以从USERS表中查找随机用户,访问者尚未使用该用户的投票。也许我不能用sql来做这件事,因为我需要一个循环或者说你很棒:我花了一整晚来解决这个问题。谢谢你的帮助。我没有看到任何包含v的声明,我需要研究一下that@can:欢迎!在v上,这叫做别名。这些可以在查询中提供给表和列。在搜索引擎中输入SQL别名以了解更多信息。