join

LUA

join

<seq1>:join(seq2, predicate(seq1.item, seq2.item), alias="table2")

Esegue l'inner join delle due sequenze basato sul predicato di matching. Se le tabelle sono chiave valore e ci sono delle collisioni i campi della prima tabella vengono preservati mentre quelli della seconda prendono l'alias (es. "ID" --> "Ordini.ID"). Se non passato l'alias vale "table2".

Nel caso di tabelle sequenziali i campi della seconda tabella vengono accodati alla prima. Se le tabelle non sono rettangolari non sono facilmente gestibili.

Esempio 217. Esempio join

local a = XTable(Orders)  :where(function(x, i) return x.ShipCountry == "USA" and x.CustomerID == "OLDWO" end)
 :join(Customers, function(order, customer) return order.CustomerID == order.CustomerID end)
 :select({"ContactName", "CompanyName", "OrderID", "ShipCountry"})
 :astable()
alert(a)