所以基本上我有 3 個不同的表,名為 member、phone_message 和 pc_message,每個表都有以下列:
member = (id, cell_num)
phone_message = (phone_num, content, received_at)
pc_message = (member_id, content, sent_at)
我在這里要做的是列出為每個成員接收或發送的所有訊息,包括電話和電腦。為此,我需要使用 JOIN 和 UNION 等 SQL 查詢將這些表合并為一個。有什么幫助嗎?
uj5u.com熱心網友回復:
您可以嘗試以下查詢,我使用了內部聯接,以便僅顯示匹配成員發送的訊息。除此之外,我還添加了一個額外的列作為設備,用于識別訊息是通過手機還是電腦發送的。
select m.id as memberId, m.cell_num as phoneNumber, p.content as Message, p.received_at as recieveDate,'Phone' as device from member m
inner join phone_message p on m.cell_num = p.phone_num
union
select m.id as memberId, m.cell_num as phoneNumber, pc.content as Message, pc.sent_at as recieveDate,'PC' as device from member m
inner join pc_message pc on m.id = pc.member_id
uj5u.com熱心網友回復:
嘗試這個;
select m.id as memberId, m.cell_num as phoneNumber, p.content, p.received_at as recieveDate from member m
inner join phone_message p on m.cell_num = p.phone_num
union
select m.id as memberId, m.cell_num as phoneNumber, pc.content, pc.sent_at as recieveDate from member m
inner join pc_message pc on m.id = pc.member_id
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/359845.html
