0
创建一个论坛型网站,我有3个表,一个用于存储用户信息(用户),一个用于原始帖子(线程),另一个用于像SO这样的upvote系统(票)。MySql如果记录存在内部选择查询
投票表有3列,id,userid和threadid。当用户上传一个线程时,一个记录被插入到投票表中。当我查询线程时,我想知道用户是否已投票支持该线程,本质上,如果记录存在于投票表中并且存在正确的userid和threadid。我可以在两个查询中做到这一点,但我认为必须有一种方法将所有内容都集中在一起。
我目前查询:
"SELECT t.id, t.title, t.content u.id AS uid, u.username
FROM threads t, users u
WHERE t.id = '".$userid."'
AND t.author = '".$userid."'"
如果你需要一个更好的主意,下面将查询所需的结果只有当用户已经upvoted。我需要查询仍然返回,如果票表中的记录不存在(可能返回投票值为空?)。
"SELECT t.id, t.title, t.content u.id
AS uid, u.username v.id
FROM threads t, users u, votes v
WHERE t.id = '".$threadid."'
AND t.author = '".$userid."'
AND v.threadid = t.id
AND v.userid = '".$userid."'"
而且我是自学的(并且还在学习)的mysql和数据库设计,所以如果有一个更好的方法/方法,如连接表,请让我知道。谢谢。