php - 选择然后再次选择不同的值

标签 php mysql sql arrays

我有 3 列 questionidreplyiduserid

我想从 userid 中选择所有 questionid,其中 userid 是 session[userid], 然后从中选择不同的 questionid

现在,我将所有属于 $_SESSION['user_id']questionid 放入一个数组中(并从中删除重复项),然后 我再次通过另一个查询

foreach($array as $x)
{
$query="select questionid,replyid,userid from table where questionid=$x"
}

但我认为上述步骤可以在查询本身中完成(并且上述步骤也不起作用)。我在下面尝试过,但没有用。 如果我尝试传递此查询,那么重复值仍然存在:

SELECT distinct(questionid),replyid,userid 
from table 
where userid=$_SESSION['user_id']

那么查询应该是什么?

questionid,replyid,userid

8          ,2     ,45

8          ,3      ,45

9           ,8      ,41

但由于 8,28,3 在同一个网页中(一个问题和两个答案),我想避免显示重复的问题...

所以我尝试了错误的方法,因为我采用了不同的 questionid,然后再次从 questionid 是前一个的表中选择 *。

但正如@Mahmoud Gamal 建议的那样

 SELECT distinct questionid, `answerid`, `userid`
 FROM `table` 
 WHERE  userid='$user' 

但是我又做了同样的重复事情。所以我添加了limit 0,1

 SELECT distinct questionid, `answerid`, `userid`
 FROM `table`
 WHERE  userid='$user' 
 LIMIT 0,1

最佳答案

这相当于您在帖子中描述的两个查询:

SELECT DISTINCT questionid, replyid, userid 
FROM table 
WHERE questionid IN
(
    SELECT DISTINCT questionid
    FROM table 
    WHERE userid = @user_id
)

这将为您提供 DISTINCT questionid, replyid, userid。但这不是必需的,包含 DISTINCT(questionid)

如果您正在寻找 distinct questionid,您最终会得到一个 GROUP BY questionid,其中包含其他两个字段的聚合函数 replyid、userid,例如 SUMMAXMIN

关于php - 选择然后再次选择不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12671768/

相关文章:

sql - 无法将过程存储到动态临时表中

java - Json/Java 新手 - 这是什么数据类型?约会时间? 13 位长。使用 PHP

php - 在 PHP 中重构这两个非常相似的类的 OO 方法是什么?

php - 当前使用单文件编辑系统

android - 无法将数据从 Android 更新到服务器

mysql - phpMyAdmin 在启动时出现显示插件错误

mysql - 使用 SQL Query 或 Laravel SQL Query Builder 创建表/列组合

php - 数组到字符串的转换

python - MySQL 中的最后一次接触归因

mysql - 在选择中的计算中使用连接计数