>>> "UB" == Uwe Brauer <o...@mat.ucm.es> writes:
>> Hi
>> I was googling this a bit, I found more complicated scenarios, but not
>> how to join one or more tables.
>> For example
>> #+begin_src
>> #+tblname: nut
>> | type | Fiber | Sugar | Protein | Carb |
>> |----------+-------+-------+---------+------|
>> | eggplant | 2.5 | 3.2 | 0.8 | 8.6 |
>> | tomatoe | 0.6 | 2.1 | 0.8 | 3.4 |
>> | onion | 1.3 | 4.4 | 1.3 | 9.0 |
>> | egg | 0 | 18.3 | 31.9 | 18.3 |
>> #+tblname: nut2
>> | type | Fiber | Sugar | Protein | Carb |
>> |----------+-------+-------+---------+------|
>> | rice | 0.2 | 0 | 1.5 | 16.0 |
>> | bread | 0.7 | 0.7 | 3.3 | 16.0 |
>> | orange | 3.1 | 11.9 | 1.3 | 17.6 |
>> | banana | 2.1 | 9.9 | 0.9 | 18.5 |
>> | tofu | 0.7 | 0.5 | 6.6 | 1.4 |
>> | nut | 2.6 | 1.3 | 4.9 | 7.2 |
>> | corn | 4.7 | 1.8 | 2.8 | 21.3 |
>> #+end_src
>> I want to generate a new table total-nuts, which is just a combination
>> of the two tables, nuts and nuts2
>> Uwe Brauer
Best solution found in
https://emacs.stackexchange.com/questions/48508/merge-org-tables
** Solution 1
#+NAME: T1
| col1 | col2 |
| 1 | 2 |
#+NAME: T2
| col3 |
| 3 |
#+BEGIN_SRC emacs-lisp :var t1=T1 t2=T2
(cl-mapcar #'append t1 t2)
#+END_SRC
#+RESULTS:
| col1 | col2 | col3 |
| 1 | 2 | 3 |
** Solution 2
#+NAME: T3
| col1 | col2 |
| 11 | 12 |
| 21 | 22 |
| 31 | 32 |
#+NAME: T4
| col3 |
| 13 |
| 12 |
#+BEGIN_SRC emacs-lisp :var t1=T3 t2=T4 :colnames no
(cl-mapcar #'append t1 t2)
#+END_SRC
#+RESULTS:
| col1 | col2 | col3 |
| 11 | 12 | 13 |
| 21 | 22 | 12 |
** Solution 3
#+NAME: TA
| col1 | col2 |
|------+------|
| 1 | 2 |
#+NAME: TB
| col3 |
|------|
| 3 |
#+BEGIN_SRC emacs-lisp :var t1=TA t2=TB :colnames no
(insert-at 1 (cl-mapcar #'append t1 t2) 'hline)
#+END_SRC
#+RESULTS:
| col1 | col2 | col3 |
|------+------+------|
| 1 | 2 | 3 |
#+begin_src elisp :noexport
(defun insert-at (n list element)
"Insert ELEMENT into LIST at position N.
I.e., (eq ELEMENT (nth N (insert-at N LIST ELEMENT)))."
(if (eq n 0)
(cons element list)
(let ((link (nthcdr (1- n) list)))
(setcdr link (cons element (cdr link))))
list))
#+end_src