好的,我知道,在查询中可以使用count和inner join,但我不知道我想要的是否可能。
我明白了:
$queryA = "SELECT
answer.a_id,
answer.answer,
answer.timestamp,
answer.m_id,
member.m_id,
member.first_name,
member.middle_name,
member.last_name,
member.picture
FROM
answers AS answer
INNER JOIN
members AS member ON answer.m_id = member.m_id
WHERE q_id = '".$q_id."'
ORDER BY a_id DESC
";
$resultA = $con->query($queryA) or die(mysqli_error($con));
while ($rowA = $resultA->fetch_assoc()) {
...my code...
}
我试图建立一个论坛,这给了我答案和编写答案的成员。 我制作了一个脚本,可以提供答案(AJAX)。当有人提出答案时,会在另一个表中创建一条记录,如下所示:
这就是我如何控制谁回答哪个答案以及何时回答。
我可以简单地为每个答案进行另一个查询,检查是否已存在具有成员ID,答案ID和问题ID的记录。这意味着如果有50个答案,那将是来自数据库的另外50个调用。我不想要那个。 是否有可能以某种方式在上面的查询中包含这个?
之后我希望能够做出这样的事情:
if($rowA['counted'] > 0) {
...show this..
}
else {
... or this
}
谢谢。
答案 0 :(得分:0)
查找特定成员是否已投票,添加到SELECT:
(SELECT COUNT(*) FROM votes v WHERE
v.m_id = [current_member.id] AND
v.a_id = answer.a_id AND
v.q_id = q_id) as has_voted
查找非特定成员投票的数量:与上述相同,但将m_id保留为:
(SELECT COUNT(*) FROM votes v WHERE
v.a_id = answer.a_id AND
v.q_id = q_id) as count_voted