使用条件子句多个连接mysql表

时间:2016-12-28 12:57:01

标签: mysql

我有三张桌子,我需要加入教育目的。

Table: users
 id | username | photo
  1 | me       | my_photo
  2 | my_friend| friend's photo
  3 | somebody | somebody`s photo

Table: chat
 mid | sender    | receiver | created
  1  | me        | my friend| 2016-12-27 09:32:2
  2  | my_friend | me       | Y-m-d h:i:s  
  3  | me        | somebody | 2016-12-27 09:32:2
  4  | somebody  | me       | Y-m-d h:i:s  

Table:favorites
  id | subscriber | subscribed_to
   1 | me         | my_friend

所需的输出是

Conversations:
username  | photo            | created            | subscribed
me        | my friend's photo| 2016-12-27 09:32:2 | yes
my_friend | my foto          | Y-m-d h:i:s        | no
me        | somebody's foto  | 2016-12-27 09:32:2 | no
somebody  | my foto          | Y-m-d h:i:s        | no

目前,我使用该代码完成了第一部分:

$qmessage = mysql_query("
select c.*, u.photo
from chat c
join users u on u.username = c.sender
WHERE   (sender = '$login_session' AND receiver = '$uid') OR
        (sender = '$uid' AND receiver = '$login_session')
");

1 个答案:

答案 0 :(得分:0)

我认为你真正需要的是一系列连接。以下查询中可能需要解释的唯一部分是最后的左连接。我使用发送方和接收方列将TypeError: expected string or buffer 表加入chat表。然后我使用favorites表达式来检查给定记录是否匹配。如果是,则假定订阅并打印CASE,否则打印'yes'

'no'