mysql - 如何对连接中的数据执行 "where"子句

标签 mysql sql

我正在尝试执行 SQL 查询来获取 2 个用户之间发送的所有消息:“发送者”和“接收者”(是的,我知道这是拼写错误的)是外键Users 表。

我想取回当前用户发送或接收的所有消息以及消息中涉及的其他人的用户名。

我有 JOIN 工作(如果我删除 where 子句,我会收到所有消息),但是我不知道如何使用 限制它>哪里

mysql_query(sprintf("
SELECT m.Content, us.Name Send, ur.Name Rec, m.Timestamp
FROM Messages m
JOIN Users us ON us.UserID = m.Sender
JOIN Users ur ON ur.UserID = m.Reciever
WHERE Send = '%s' or Rec = '%s'
ORDER BY TIMESTAMP DESC
"), $user, $user);

最佳答案

不能在 WHERE 子句中使用列别名。请参阅this SO question .

您的 WHERE 子句应该是:

WHERE us.Name = '%s' OR ur.Name = '%s'

关于mysql - 如何对连接中的数据执行 "where"子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22488996/

相关文章:

mysql - 在两个唯一的列上创建主键

phpmyadmin 日期/时间计算

MySQL查询另一个表中的多个日期

sql - JCR SQL2 节点属性和所有子节点中的全文搜索

sql - Oracle BLOB 与 VARCHAR

mysql - SEPARATOR 关键字在 Hibernate 公式中无法正常工作

javascript - 使用php,ajax从数据库中获取数据

MySQL 从具有不同键的同一列划分

sql - 在没有 RIGHT() 的情况下获取 SQL 中字段中最右边的字符

MySQL 即使没有结果也返回一个值 - IFNULL