什么是查询?

时间:2015-12-27 06:33:55

标签: sql

我有一张这样的桌子。

表名称:消息

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'];
}`

但如果mfrommtomtomfrom相等,我只希望显示一个结果。例如mfrom =amto=bmfrom=bmto=a。我想只显示一个像他们这样的结果

mid | mfrom | mto | msg 
-------------------------
2   |  b    |  a  | hello
4   |  c    |  a  | fine

请告诉我查询。

如果有多个(用户a和用户b)的消息 将只展示一次

1 个答案:

答案 0 :(得分:1)

如果您只想显示两条记录,那么您可以进行如下所示的自我加入:

SELECT table2.mfrom, table2.mto
FROM table table1 INNER JOIN table table2
ON (table1.mfrom = table2.mto AND table2.mfrom = table1.mto)