Title: Part of the workflow for building my website is the generation of a table in
tab-separated column format (.tsv). The source data is found in four other .tsv
files. I use an SQLite query to perform a 4-way join and write out the new table. For
convenience, I wrote a script that encapsulates the query inside a Bash function.<p>The example below illustrates this technique.<p><pre><code>    repertoire() {
      pushd $CMM_SOURCES&#x2F;_data
      sqlite3 &lt;&lt;EOS

    .headers on
    .mode tabs
    .import category.tsv category
    .import composition.tsv composition
    .import concert.tsv concert
    .import program.tsv program
    .once repertoire.tsv

    SELECT 
      category.name AS category, 
      composition.key, 
      composition.composer, 
      composition.name AS composition, 
      concert.name AS concert
    FROM 
      category, 
      concert, 
      composition, 
      program
    WHERE 
      julianday(concert.date) &lt; julianday(&#x27;now&#x27;)
      AND composition.category = category.name
      AND program.key = composition.key
      AND program.date = concert.date
    ORDER BY 
      category.sequence, 
      composition.key
    ;

    EOS
      popd
    }</code></pre>
Upvote: