Kevin
01/29/2019, 8:10 AMselect date, message.ROWID, id, text, filename, is_from_me, mime_type
from message
left join handle on message.handle_id = handle.ROWID
inner join chat_message_join c on message.ROWID = c.message_id and c.chat_id = 259
left join message_attachment_join maj on message.ROWID = maj.message_id
left join attachment a on maj.attachment_id = a.ROWID;
I’m pretty new to exposed and SQL in general, so I’m not sure if this is even the right way to do things in SQL.tapac
01/29/2019, 10:21 AMKevin
01/29/2019, 2:57 PMMessages
.leftJoin(Handle, {Messages.handleID}, {Handle.id})
.innerJoin(ChatMessageJoins, { Messages.id }, { ChatMessageJoins.messageID })
.leftJoin(AttachmentMessageJoin, {Messages.id}, {AttachmentMessageJoin.messageID})
.leftJoin(Attachments, {AttachmentMessageJoin.attachmentID}, {Attachments.id})
.selectAll()
.andWhere { ChatMessageJoins.chatID eq chatID }
tapac
01/29/2019, 8:09 PMabstract class RowIdTable(name: String) : IdTable<Int>(name) {
override val id = integer("ROWID").entityId()
}
object Messages : RowIdTable("Messages") {
val handleId = optReference("handleID", Handle)
}
object Handle : RowIdTable("Handle")
object ChatMessageJoins : RowIdTable("ChatMessageJoins") {
val chatID = integer("chatID")
}
Messages
.leftJoin(Handle)
.innerJoin(ChatMessageJoins)
.select{ ChatMessageJoins.chatID eq chatID }
Kevin
01/30/2019, 5:26 AMoptReference
.