【发布时间】:2019-11-03 14:48:21
【问题描述】:
我的查询对你们大多数人来说可能听起来很简单,但它确实吸引了我很长一段时间!
table **user**
+----+-------+
| id | name |
+----+-------+
| 1 | Sanam |
+----+-------+
| 2 | Raj |
+----+-------+
| 3 | bipul |
+----+-------+
table **msg**
+----+-----------+-----------+
| id | msg | createdBY |
+----+-----------+-----------+
| 1 | Hi Raj | 1 |
+----+-----------+-----------+
| 2 | Hi bipul | 1 |
+----+-----------+-----------+
| 3 | Hi public | 1 |
+----+-----------+-----------+
table **msgToSpecificPeople**
+----+-------+-----------------+
| id | msgId | receiverId |
+----+-------+-----------------+
| 1 | 1 | 2 --raj id |
+----+-------+-----------------+
| 1 | 2 | 3 --bipul id |
+----+-------+-----------------+
现在,我想接收输出,就好像 raj 是接收者一样,然后他得到 public msg 和 1 他收到的 msg,即“hi raj”。我想忽略“hi bipul msg”。
左外连接给了我所有的记录。
SELECT m.msgContent AS MSG
FROM msg AS m
left outer JOIN msgToSpecificPeople AS p ON m.id = p.msgId and p.receiverId = 2
有人能帮我解决这个问题吗?
编辑:也让我知道如何在 linq 中实现这一点
【问题讨论】:
-
你能告诉我们你想要什么输出吗?
-
只需切换
msgToSpecificPeople和msg即可。
标签: mysql sql linq join outer-join