私は2つのテーブルchat_tableとmessage_tableを持っています。
私はチャットテーブル+メッセージとメッセージチートからの時間の行をcointains表示する必要があります。最後のテーブルが1または0に制限されている結合を作成する方法は?
CREATE VIEW chat_view AS
SELECT
chat_table._id AS _id,
chat_table.chat_id AS chat_id,
chat_table.title AS title,
chat_table.title_lower AS title_lower,
chat_table.interlocutor_username AS interlocutor_username,
chat_table.interlocutor_lastname AS interlocutor_lastname,
chat_table.interlocutor_name AS interlocutor_name,
chat_table.interlocutor_username_lower AS interlocutor_username_lower,
chat_table.interlocutor_lastname_lower AS interlocutor_lastname_lower,
chat_table.interlocutor_photo AS interlocutor_photo,
chat_table.status AS status,
chat_table.type AS type,
chat_table.client_id AS client_id,
message_table.message AS message,
message_table.message_lower AS message_lower,
message_table.time AS time
FROM
chat_table
INNER JOIN
message_table
ON
chat_table.chat_id = message_table.chat_id
INNER JOIN
( SELECT chat_id,
MAX(time) AS time FROM message_table GROUP BY chat_id) b
ON
b.chat_id = message_table.chat_id AND message_table.time = b.time
現在のところ、このステートメントは最後のメッセージとのチャットを表示し、メッセージなしでチャットを無視するビューを作成します。
メッセージなしでチャットを挿入すると暑いですか?左について
EDIT
あなたはLEFT JOIN
を使用しますが、あなたはそれを2回行う必要があり
CREATE VIEW chat_view5 AS SELECT chat_table._id AS _id, chat_table.chat_id AS chat_id, chat_table.title AS title, chat_table.title_lower AS title_lower, chat_table.interlocutor_username AS interlocutor_username, chat_table.interlocutor_lastname AS interlocutor_lastname, chat_table.interlocutor_name AS interlocutor_name, chat_table.interlocutor_username_lower AS interlocutor_username_lower, chat_table.interlocutor_lastname_lower AS interlocutor_lastname_lower, chat_table.interlocutor_photo AS interlocutor_photo, chat_table.status AS status, chat_table.type AS type, chat_table.client_id AS client_id, message_table.message AS message, message_table.message_lower AS message_lower, message_table.time AS time FROM chat_table LEFT JOIN message_table ON chat_table.chat_id = message_table.chat_id LEFT JOIN ( SELECT chat_id, MAX(time) AS time FROM message_table GROUP BY chat_id) b ON b.chat_id = message_table.chat_id AND message_table.time = b.time
LEFTで終わるINNER JOINがあれば、私が参加し、左使用whenewher、代わりに – jarlh
@jarlhのJOINは、第一又は第二instedまたは両方をinsted - 私はチャット – Yarh