title: Updating rows based on a multiple column condition
body: <p>I'm trying to update some rows in a table based on two other columns in another table.  As a toy model, consider two tables: People, with columns first_name, last_name, and has_license; Drivers, with columns first_name and last_name.  Now I want to update the first table so has_license='Y' for all tuples of first_name and last_name that are also in the Drivers table.</p>
  
  <p>I could do:</p>
  
  <pre><code>UPDATE people SET has_license='Y'
  WHERE first_name + last_name IN (SELECT first_name + last_name FROM drivers)
  </code></pre>
  
  <p>(In my actual query, first_name and last_name are an externally-set record id and a date, and the subquery is more complex involving a join/EXCEPT clause.)</p>
  
  <p>That's clumsy and has possible errors depending on the values.  Ideally I could just make the tuple in sql like so:</p>
  
  <pre><code>UPDATE people SET has_license='Y'
  WHERE (first_name, last_name) IN (SELECT first_name, last_name FROM drivers)
  </code></pre>
  
  <p>But that's invalid SQL (according to SQLite).  So is what I want even possible?</p>
  
  <p>(One other problem is that none of the tables have any primary keys, especially not single-column ones.  If that weren't the case, I would use that to simply identify the row.)</p>