我有一张这样的桌子。
表名称:消息
mid | mfrom | mto | msg
------------------------
1 | a | b | hi
2 | b | a | hello
3 | a | c | how are you
4 | c | a | fine
假设我要显示'a'的所有消息 我能够通过
显示所有'a'行`$to='a';
$sql = mysql_query("SELECT *
FROM message
WHERE mto = '$to'
OR mfrom = '$to';");
while($row = mysql_fetch_array($sql))
{
echo $row['msg'];
}`
但如果mfrom
和mto
或mto
和mfrom
相等,我只希望显示一个结果。例如mfrom =a
和mto=b
或mfrom=b
和mto=a
。我想只显示一个像他们这样的结果
mid | mfrom | mto | msg
-------------------------
2 | b | a | hello
4 | c | a | fine
请告诉我查询。
如果有多个(用户a
和用户b
)的消息
将只展示一次
答案 0 :(得分:1)
如果您只想显示两条记录,那么您可以进行如下所示的自我加入:
SELECT table2.mfrom, table2.mto
FROM table table1 INNER JOIN table table2
ON (table1.mfrom = table2.mto AND table2.mfrom = table1.mto)