すべての送信SMSテキストメッセージを格納するテーブルが1つあります。 2番目のテーブルには、各メッセージの配信確認が格納されます(メッセージごとに1〜20個の配信確認が格納されます)。MySQL Left Outer Join、MAX()およびその他の列
SELECT
messages_sent.id,
messages_sent.user_id,
messages_sent.api_key,
messages_sent.to,
messages_sent.message,
messages_sent.sender_id,
messages_sent.route,
messages_sent.submission_reference,
messages_sent.unique_submission_reference,
messages_sent.reason_code,
messages_sent.timestamp,
MAX(delivery_receipts.id) AS dlr_id,
delivery_receipts.dlr_status
FROM
messages_sent
LEFT OUTER JOIN
delivery_receipts
ON
messages_sent.id = delivery_receipts.message_id
WHERE
message_id = '466182'
GROUP BY
messages_sent.id
は、メッセージ#466182 2枚の配信領収書があります。
は、私は、次のSQLを持っています。
ただし、正しいdlr_id
が返されます(最新のもの)。ただし、返されたdlr_status
が最初のものです。 dlr_status
は2の代わりに5にする必要があります。
ご協力いただけると助かります。これに
優秀、ありがとうございます。ただし、これは最新のものだけでなく、両方の行を返します。私は 'GROUP BY'が必要ですか?私はクエリの最後に 'GROUP BY'を試して、それは最も古いものを表示します! – Craig