如何编写三个表的复杂查询?
请帮我。
我有三个表,
Users:id,name....
Message:id,title....
Messages_Users:id,message_id,sender_id,receiver_id......
所以我在消息模型中使用 HABTM 关系,
var $hasAndBelongsToMany = array(
'Users' => array (
'className' => 'User',
'join_table' => 'messages_users',
'foreignKey' => 'message_id',
'associationForeignKey' => 'reciever_id',
'conditions'=> array('MessagesUser.reciever_id => $this->Session->read("Id")')
)
);
所以现在我想编写一个 sql 查询来获取已向特定登录使用发送消息的用户的所有朋友的姓名。
我,e....当用户登录时,他将获得他收到的消息列表以及发件人的姓名。
如何在 messages_controller 中为此编写查询?
如果有人有任何想法,请告诉我..
Please help me.
I am having three tables as,
Users:id,name....
Message:id,title....
Messages_Users:id,message_id,sender_id,receiver_id......
So i am using HABTM relation in message model for this as,
var $hasAndBelongsToMany = array(
'Users' => array (
'className' => 'User',
'join_table' => 'messages_users',
'foreignKey' => 'message_id',
'associationForeignKey' => 'reciever_id',
'conditions'=> array('MessagesUser.reciever_id => $this->Session->read("Id")')
)
);
So now i want to write a sql query to fetch the name of all the friends of the user who has sent messages to that particular logged in use.
i,e....when the user log in he will get list of messages he got along wid the name of the senders.
how to write query for this in messages_controller??
please let me if anybody is having any idea..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道 ORM 在 cackephp 中是如何工作的,但是您需要的查询是......
即使用消息表是不必要的,并且会使您的代码运行速度显着变慢。
请注意,数据库没有正确规范化 - 即使用户可以将相同的消息发送给多个收件人(而不是接收者),我也无法想象多个用户可以发送相同的消息。
I've no idea how the ORM works in cackephp, but the query you need is....
i.e. using the messages table is unnecessary and will make your code run significantly slower.
Note that the database is NOT properly normalized - even if a user can send the same message to multiple recipients (not receivers), I can't imagine that multiple users can send the same message.