title: Join each row with each other row
body: <p>Assume that we have a simple data table:</p>
  
  <pre><code>d &lt;- data.table(a=c(1,2,3),b=c("A","B","C"))
  </code></pre>
  
  <p>It's content is:</p>
  
  <pre><code>   a b
  1: 1 A
  2: 2 B
  3: 3 C
  </code></pre>
  
  <p>Now, I want to join/merge each row of the data table with each other row. The result should look like this:</p>
  
  <pre><code>   a b c d
  1: 1 A 1 A
  2: 1 A 2 B
  3: 1 A 3 C
  4: 2 B 1 A
  5: 2 B 2 B
  6: 2 B 3 C
  7: 3 C 1 A
  8: 3 C 2 B
  9: 3 C 3 C
  </code></pre>
  
  <p>So, each row is basically cbind'ed with the whole data table.
  What is the most efficient way to do this? Could this be done only using data.table syntax?</p>
  
  <p>Thank you!</p>
  
  <p>Edit:
  The CJ-Method of data.table does build a cartesion product but only for vectors, not tables.</p>