Spoilers ahead:
- 1st query to get the crime report. This contain plaintext clues.
- 2nd query to get witness interviews. Again, these contain plaintext clues that can't be used in a `join` statement or a `where` statement in SQL.
- 3rd query to get interview with suspect. This contain plaintext information needed for solving the second puzzle
- 4th query for finding the master mind.
Short of writing regexes that basically extracts the clues by looking for patterns that are verbatim the clues themselves, I don't see how it can be done any shorter than this.
You can see my solution here on my github: https://github.com/olsgaard/sql_murder_mystery_solution/blob...
You need at least 3 for the first one - 1 to get the info on the murder which is just text, 2nd to get the interviews (which aren't connected to the murder info, though they probably should), and then you can get to the solution in one big query.