我正在尝试在PHP中进行查询,该查询将使我将来自2个不同表的行按ID连接在一起。
我的第一个表格是这样的“ 发件箱”。
int mask = 0b111;
int lastBits = readBytes & mask;
我的第二个表是看起来非常相似的“ outbox_multipart ”。
TextDecoded | ID | CreatorID
Helllo, m.. | 123 | Martin
Yes, I wi.. | 124 | Martin
在此示例中,有2条消息均由 3个部分组成。第一部分始终在发件箱表中,其余部分在 SequencePosition 排序的outbox_multipart表中。
所以查询的预期结果是这样。
TextDecoded | ID | SequencePosition
my name i.. | 123 | 2
s Martin. | 123 | 3
ll do tha.. | 124 | 2
t tomorrow. | 124 | 3
这有可能吗?
答案 0 :(得分:1)
Inner Join
在两个表之间ID
。Group_Concat()
函数允许我们以自定义排序的灵活性和选择定界符的方式将一个组中的表达式/列值连接起来。我们可以根据outbox_multipart.TextDecoded
中Order By
的升序来合并outbox_multipart.SequencePosition
;并使用空字符串''
作为分隔符。Concat()
函数将固定的起始子字符串outbox.TextDecoded
连接到Group_concat
的结果字符串。尝试:
SELECT
CONCAT(ob.TextDecoded,
GROUP_CONCAT(obm.TextDecoded
ORDER BY obm.SequencePosition ASC
SEPARATOR ''
)
) AS TextDecoded,
ob.ID,
ob.creatorID
FROM outbox AS ob
JOIN outbox_multipart AS obm ON obm.ID = ob.ID
GROUP BY
ob.ID,
ob.creatorID