php - MySQL查询中间表

标签 php mysql

我试图找出两个用户之间是否存在对话,但我无法想象如何在 mysql 中查询它。

我的 table 是:

users
-----
id
name

conversations
-------------
id

conversation_user
-----------------
user_id
conversation_id

例如,我有两个用户和一个对话,因此在我的conversation_user表中我有

user_id    conversation_id
1          1
2          1

如何检查这种关系是否存在?

提前谢谢您。

最佳答案

您可以使用 join 来实现:

SELECT
    c1.*, c2.*
FROM
    conversation_user c1
INNER JOIN
    conversation_user c2
ON
    c1.conversation_id = c2.conversation_id
WHERE
    c1.user_id != c2.user_id;
<小时/>

你可以看看这个SQLFiddle Example那是更详细一点。它展示了一个引入用户姓名按对话过滤的示例。

关于php - MySQL查询中间表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38513710/

相关文章:

mysql - 优化选择查询。使用了 join、Not in 和子查询

PhpUnit 忽略了它的 XML 配置文件中的*一些*指令

php - CakePHP Bake Shell 错误 : Database connection “Mysql” is missing, 或无法创建

php - 具有自动递增唯一ID的SQL插入语句

php - 来自 JSON 的 mysql 中的 bind_param

尽管没有出现错误,Java SQL 更新语句并未在表中更新

mysql - 将 SELECT 中的相关子查询重写为 JOIN 语句

php - 回显 SELECT CONCAT 查询的结果?

mysql - 使用自动增量键插入时出现 ORMLite 错误

javascript - 忽略 if 语句的 PHP 函数