[英]Mysql select nickNames from other table?
我有3張桌子用於聊天應用
chatRooms(id)
chatMessages(id,roomId,userId,消息)
userData(用戶ID,昵稱)
如何加載帶有nickNames的chatMessages的所有chatRoom?
我試過了:
$qry = $db->prepare('SELECT
chatRooms.id,
chatMessages.message,
userData.nickName
FROM chatRooms
LEFT JOIN chatMessages
ON chatMessages.roomId = chatRooms.id
LEFT JOIN userData
ON chatMessages.userId = userData.userId '
);
$qry->execute();
但這似乎對我不起作用:C
我想以聊天名稱顯示在chatRoom中的所有用戶
因此,如果小組中有3個人(弗雷德,喬,貝恩),那么我莫名其妙地需要一個陣列。 對於每個數組元素(chatRoom)
您的第一個LEFT JOIN很可能返回多個行。
根據您的問題,您的“ chatMessages”表中也包含一個userId。 您還應該對此進行過濾。
為此,您需要:
將userData中的userId包括在chatMessages的LEFT JOIN中
$qry = $db->prepare('SELECT chatRooms.id, chatMessages.message, userData.nickName FROM chatRooms LEFT JOIN userData ON chatMessages.userId = userData.userId LEFT JOIN chatMessages ON chatMessages.roomId = chatRooms.id AND chatMessages.userId = userData.userId'); $qry->execute();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.