gpt4 book ai didi

php - 来自 3 个表的 MySQL 数据

转载 作者:行者123 更新时间:2023-11-29 00:56:03 26 4
gpt4 key购买 nike

我有三个与消息系统相关的 MySQL 表。下面显示了与我的问题相关的每个表的模式和示例数据:

`messages`:
+----+---------+----------+
| id | subject | senddate |
+----+---------+----------+
| 1 | Testing | 12344555 |
+----+---------+----------+

`message_senders`:
+------------+---------+---------+
| message_id | user_id | trashed |
+------------+---------+---------+
| 1 | 1 | 1 |
+------------+---------+---------+

`message_recipients`:
+------------+---------+------+----------+---------+
| message_id | user_id | type | readdate | trashed |
+------------+---------+------+----------+---------+
| 1 | 1 | to | 12344555 | 1 |
+------------+---------+------+----------+---------+
| 2 | 1 | cc | 12344555 | 1 |

我的问题是如何选择用户发送或接收的所有消息,其中 trashed 参数设置为 1,而不选择重复消息。例如,考虑以下场景:

我想获取所有被 user_id 1 丢弃的消息的消息 ID,但我不想检索重复的 ID(例如,在上面的数据中,user_id 1 是 message_id 1 的发送者和接收者。我不想返回 1 的 message_id 两次,但想获取该用户的所有消息。

我想我需要结合使用 JOINUNION,但是经过一整天的 PHP 之后我的大脑无法正常工作!

最佳答案

试试这个,看看它是否只为消息表中的每条消息返回一行...

    select * from messages 
left join message_senders on messages.id = message_senders.message_id
left join message_recipients on messages.id = message_recipients.message_id
where message_senders.trashed = 1 or message_recipients.trashed = 1 and messages.user_id = <value>

关于php - 来自 3 个表的 MySQL 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6076279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com