title: update column with data from other table with executemany
body: <p>I have 2 tables:</p>
  
  <ul>
  <li><strong>Kanji</strong> with <em>framenum</em> INT and <em>character</em> STRING</li>
  <li><strong>learnAlg</strong> with <em>framenum</em> INT and <em>framekanji</em> STRING</li>
  </ul>
  
  <p><em>framekanji</em> currently has in every row the value 'NULL' and has to be filled with <strong>Kanji</strong>.<em>character</em> with the same <em>framenum</em>. E.g. 二 from table <strong>Kanji</strong> (2, '二') has to be filled in in table <strong>learnAlg</strong> where <em>framenum</em> = 2.</p>
  
  <p>The following code works:</p>
  
  <pre><code>c.execute("SELECT MAX(rowid) FROM learnAlg")
  max = c.fetchone()[0]
  
  for fn in range(max):
      fn += 1
      # !! Add framekanji !!
      c.execute("UPDATE learnAlg SET framekanji=(SELECT character FROM Kanji WHERE "
                "framenum = learnAlg.framenum) WHERE framenum = ?", (fn,))
  </code></pre>
  
  <h2>Question</h2>
  
  <p>I was wondering if it was also possible to update every row in 1 go with code similar to:</p>
  
  <pre><code>c.executemany("UPDATE learnAlg SET framekanji=(SELECT character FROM Kanji WHERE "
                "framenum = learnAlg.framenum) WHERE framenum = self")
  </code></pre>
  
  <p>However this results in the error: "TypeError: function takes exactly 2 arguments (1 given)"</p>