php - 你如何使用mysql join来过滤掉整行?

标签 php mysql sql database

我想运行一个查询,从 2 个单独的表中选择用户尚未回答的最新问题。这是我想出的:

SELECT Q.question_id, Q.question, S.user_id, S.question_id 
FROM questions Q inner join answers S on Q.question_id=S.question_id 
WHERE S.user_id != '$userID'

这确实会过滤掉用户已回答特定问题的行,但不幸的是,如果另一个用户回答了相同的问题,它仍会返回该问题。如果用户没有回答,我想消除所有返回的问题。

欢迎提出建议/想法,谢谢。

最佳答案

“选择$userId没有回答的所有问题”:

SELECT Q.question_id, Q.question
FROM questions Q 
WHERE 
    Q.question_id NOT IN (
         /* Select all questions's ids, which have been answered by $userId */
         SELECT `question_id` 
         FROM `answer` 
         WHERE `answer`.`user_id` = '$userId'
    )

关于php - 你如何使用mysql join来过滤掉整行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10081954/

相关文章:

php - 如何不通过引用传递 PHP 对象

PHP shell_exec() 与 exec()

php - LAMP 环境变量 ($PATH) 出现问题

c# - 如何更新链接到 MySQL 数据库的图表?

c# - 无法将类型为 'System.DateTime' 的对象转换为类型 'System.String'。 C#

MySQL 将两列的差值计算成一个 Total 列

php - 100% 定制的多用户 MySQL 组织策略

mysql - 在同一个表中使用带有 GROUP_CONCAT 的 SELECT 语句进行更新

mysql - sql 将列添加到结果中

php - 来自数据库的数据未显示在我的编辑页面中