好的,我正在建立一个多用户聊天系统。
我有一个消息表,其中包含所有消息 - 简化:
messages:
id,
content,
thread_id
然后我有一个线程表:
messages_threads:
id,
participantlist_id
然后我有一个参与者列表:
participantlist:
list_id,
name
我有一个参与者列表链接表:
participantlist_links:
list_id,
participant_id
现在我想从参与者列表(数组)中找出线程ID,我想出了这个:
$threadid_sqlquery = "
SELECT messages_threads.id FROM messages_threads
JOIN participantlist_links
ON messages_threads.participantlist_id = participantlist_links.list_id";
foreach($participants_array as &$participant_id){
$maxid_sqlquery .= "
AND participantlist_links.participant_id='".$participant_id."'";
}
但现在:我正在寻找用户 1 和 2 之间聊天的 thread_id - 有一个与用户 1、2、3 的多用户聊天和一个与用户 1、2、3、4 的聊天我得到的结果三行,但我只想要只有用户 1 和 2 是参与者的那一行。
有什么方法可以查询吗?