我正在尝试创建sql语句。将在数据库中找到一个随机用户ID,也可以从VOTES表中找到visitor(user id = 10)尚未向由随机确定的用户投票。
42
我必须结合这2条sql语句。我需要这样做是因为该网站将打开一个用户个人资料,访问者尚未对该用户进行投票。 谢谢
我以前使用过这些代码,但是这些代码主要显示访问者投票的个人资料,因此我需要从投票表中添加支票
$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}'")
答案 0 :(得分:1)
老实说,我不理解您的描述。
但是要组合这两个查询,最简单的方法是将第二个查询作为子查询包括在内。
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;
它从users
获取一个随机记录,其中votes
中不存在任何记录,该用户来自users
的用户为receiver
并且userid
等于到“访客”或10
是什么。
也就是说,如果我理解正确,votes.receiver
是另一个投票的用户,votes.userid
是投票的用户。