我该怎么做这个子查询?

时间:2017-07-19 20:12:24

标签: mysql join subquery

我一直在尝试做一个子查询,在那里我获得用户和这些消息的所有收件人发送的所有消息。但到目前为止我唯一能做的就是错误。

这是我的疑问:

SELECT
   UR.NAME,
   UR.SURNAME,
   UR.EMAIL,
   UR.PASSWORD,
   UR.ADRESS,
   UR.CELLPHONE,
   UR.COUNTRY,
   UR.STATE,
   UR.CITY
FROM USERS AS UR
JOIN RECIPIENTBYMESSAGE AS RBM ON RBM.IDRECIPIENT = USERS.IDUSER
WHERE M.IDMESSAGE IN
    ( SELECT M.IDMESSAGE,
             M.BODY,
             M.SUBJECT,
             US.NAME,
             US.SURNAME,
             US.EMAIL,
             US.PASSWORD,
             US.ADRESS,
             US.CELLPHONE,
             US.COUNTRY,
             US.STATE,
             US.CITY
     FROM MESSAGES AS M
     JOIN USERS AS US ON US.IDUSER=M.IDSENDER
     WHERE M.IDSENDER=1 );

问题在于

  

M.IDMESSAGE IN

因为M.IDMESSAGE是子查询的一部分,我从外面调用它 但我不知道该怎么做。

如果有人有任何想法,或任何其他方式不一定使用子查询,我会非常感激。

Here are my tables

1 个答案:

答案 0 :(得分:0)

M.IDMESSAGE IN 

不在您的选择表中。您可以在选择中添加一个您期望匹配的列

M.IDMESSAGE 

来自你的

inner select.