﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Ayende Rahien commented on Rhino ETL: Thinking about Joins &amp; Merges</title><description>on: 
  
		Left.Id.ToString().Equals(Right.UserId) &amp;&amp; Left.UserName == Right.Name
  
  
</description><link>http://ayende.com/2654/rhino-etl-thinking-about-joins-merges#comment4</link><guid>http://ayende.com/2654/rhino-etl-thinking-about-joins-merges#comment4</guid><pubDate>Fri, 27 Jul 2007 11:19:56 GMT</pubDate></item><item><title>Mark Monster commented on Rhino ETL: Thinking about Joins &amp; Merges</title><description>Hmm good start I think. What about a multi-key (I'm not sure about the English term) join?
</description><link>http://ayende.com/2654/rhino-etl-thinking-about-joins-merges#comment3</link><guid>http://ayende.com/2654/rhino-etl-thinking-about-joins-merges#comment3</guid><pubDate>Fri, 27 Jul 2007 11:16:04 GMT</pubDate></item><item><title>Ayende Rahien commented on Rhino ETL: Thinking about Joins &amp; Merges</title><description>Derick, I am not limited to the alternative I have brought up, I am certainly opened to new stuff
</description><link>http://ayende.com/2654/rhino-etl-thinking-about-joins-merges#comment2</link><guid>http://ayende.com/2654/rhino-etl-thinking-about-joins-merges#comment2</guid><pubDate>Thu, 26 Jul 2007 21:21:28 GMT</pubDate></item><item><title>Derick Bailey commented on Rhino ETL: Thinking about Joins &amp; Merges</title><description>i'm not sure i like either of those syntax options, actually. Neither of them allows for joins across multiple tables where the join happens down the chain of tables.
  
  
for example, how would I join TableA.Field1 to TableB.Field2 to TableC.Field3? if you modify the joinTransform line like this, you can accomplish what I am saying with multiple joinTransforms, though:
  
  
joinTransform Source to UsersAndOrganizations:
  
  
I also think it would be hard to have complex joins, like Or clauses, with those two syntax specs. you would need something closer to real SQL, while still mainaining an object model
  
  
so the final syntax would look something for multiple join chain example:
  
  
joinTransform Source to UsersAndOrganizations:
  
	Left.Row.Id = Right.Row.UserId
  
	Left.Row.UserName = Right.Row.FullName
  
	transform:
  
		Row.Copy(Left)
  
		Row.OrgId = Right["Organization Id"]
  
  
joinTransform UsersAndOrganizations to Departments
  
	Left.Row.UserId = Right.Row.ManagerId
  
  
  
  
and syntax for complex join example:
  
  
joinTransform Source to UsersAndOrganizations:
  
	Left.Row.Id = Right.Row.UserId
  
	( Left.Row.UserName = Right.Row.FullName || Right.Row.FullName = null)
  
	transform:
  
		Row.Copy(Left)
  
		Row.OrgId = Right["Organization Id"]
  
  
  
  
I left the ".Row." in the Left and Right syntax so that you can add something like 
  
  
Left.Row.NonMatching 
  
  
or other specialized syntax options, as needed.
  
  
  
  
</description><link>http://ayende.com/2654/rhino-etl-thinking-about-joins-merges#comment1</link><guid>http://ayende.com/2654/rhino-etl-thinking-about-joins-merges#comment1</guid><pubDate>Thu, 26 Jul 2007 20:44:41 GMT</pubDate></item></channel></rss>