The SMSJobID in the send log is a GUID, not the normal numerical identifier like the SendJobID that is inside SMSMessageTracking DV.
I have tried looking to see if there is some pattern in the GUID that it included the numeric JobID – but no luck. I have compared the GUID across all other data points in the DV and no luck either.
Then I started adding in any personalization strings I could think of (hoping to find something undocumented) and nothing worked. jobid always returns 0 – which is kinda expected as it says in the description it is only for email.
I feel like I am in crazy town that the Job ID for the same job would not only be different values, but also completely different data types.
The closest I have found so far is to match on MobileNumber, SubscriberID and a soft match on sendDate. Not exactly reliable, especially if there are multiple sends at the same time (e.g. Transactional messaging).
The short answer is that currently there is no way to accomplish this and there is no existing effort on SFMC end to correct this. The best you can do is soft matches on data and leave open the risk of potential data corruption due to mismatched records.
I created an ‘idea‘ in the Trailblazer community – please add support to this and hopefully we can get some movement to resolve this issue.