标签:join select inner-join sql mysql
我想知道是否有人可以帮助我.我工作的私人信息中心,这将使能PM的通过前端发送给对方用户.收件箱运行良好,但是我想添加一个页面,您可以在其中单击用户名,然后可以看到与此用户以及当前登录用户之间来回发送的所有消息.
例如:
用户1
讯息A
讯息B
讯息C
讯息D
用户2
讯息A
讯息B
讯息C
用户3
讯息A
讯息B
讯息C
讯息D
讯息E
在我的数据库中,我有一个包含所有用户的表:
id | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key
我有一个表,其中包含消息的信息:
id | parent_id | from_user | to_user | send_date | last_date | message_title | message_contents | status | to_del | from_del
表1中的用户ID对应于parent_id(嵌套形式的答复消息)以及表2中的from_user和to_user.
通过下一个查询(在Stackoverflow的基础上找到该查询后,将使用该查询),我可以从from_user列中回显结果,但是我想回显从该用户发送给用户的所有消息:
global $wpdb;
$result = $wpdb->get_results( "SELECT table1.id, table1.user_nicename, table2.id,
table2.from_user, table2.message_title FROM table1
INNER JOIN table2 ON table1.id=table2.from_user
GROUP BY user_nicename" );
foreach($result as $row)
{
echo $row->user_nicename." <br> ".$row->message_title."<br>";
}
?>
也许有人可以阐明这一点,并指出正确的方向吗?我想我需要使用INNER JOIN之类的东西来将to_user添加到查询中,但是我有点迷失了.
如果您需要更多信息,请告诉我.第一次在这里寻求帮助,所以我不知道我是否提供了足够的信息:)
非常感谢你提前为您的关注和帮助!
解决方法:
尝试这个:
SELECT t1.id, t1.user_nicename, t2.id, t2.from_user, t2.message_title
FROM table1 t1
INNER JOIN table2 t2 ON t1.id IN (t2.from_user, t2.to_user)
ORDER BY t1.id;
如果要特定用户的消息,请使用以下查询:
SELECT t1.id, t1.user_nicename, t2.id, t2.from_user, t2.message_title
FROM table1 t1
INNER JOIN table2 t2 ON t1.id IN (t2.from_user, t2.to_user)
WHERE t1.id = 1;
标签:join,select,inner-join,sql,mysql 来源: https://codeday.me/bug/20191028/1955278.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。