<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Join two tables by matching common column name in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Join-two-tables-by-matching-common-column-name/m-p/252982#M49660</link>
    <description>&lt;P&gt;This should do it:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;DT1 = New Table("DT1",
	&amp;lt;&amp;lt; Add Rows(3),
	&amp;lt;&amp;lt; New Column("Name", character, Values({"Adam","Bob","Chris"})),
	&amp;lt;&amp;lt; New Column("Section", character, Values({"A","A","B"})),
	&amp;lt;&amp;lt; New Column("Subject", character, Values({"Math","Science","English"}))
);
DT2 = New Table("DT2",
	&amp;lt;&amp;lt; Add Rows(3),
	&amp;lt;&amp;lt; New Column("Name", character, Values({"Adam","Bob","Chris"})),
	&amp;lt;&amp;lt; New Column("Section", character, Values({"A","A","B"})),
	&amp;lt;&amp;lt; New Column("Score", numeric,continous, Values({80,90,84}))
);
LSTcols1 = DT1 &amp;lt;&amp;lt; Get Column Names(string);
LSTcols2 = DT2 &amp;lt;&amp;lt; Get Column Names(string);

STRjoinCols = "";

For(LVC=1,LVC&amp;lt;=N Items(LSTcols1),LVC++,
	STRcol = LSTcols1[LVC];
	If(
		Contains(LSTCols2,STRcol)
	,
		If(
			STRjoinCols == ""
		,
			STRjoinCols = ":"||STRcol||"==:"||STRcol
		,
			STRjoinCols = STRjoinCols||", :"||STRcol||"==:"||STRcol
		);
	);
);
expr = Eval Insert(
	"\[
	DT3 = DT1 &amp;lt;&amp;lt; Join(
				With( DT2 ),
				Merge Same Name Columns,
				Match Flag( 0 ),
				By Matching Columns( ^STRjoinCols^ ),
				Drop multiples( 0, 0 ),
				Include Nonmatches( 0, 0 ),
				Preserve main table order( 0 ),
				Output Table( "DT3" )
	);
	]\"
);
Eval( Parse( expr ) );&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 18 Mar 2020 16:09:01 GMT</pubDate>
    <dc:creator>david707</dc:creator>
    <dc:date>2020-03-18T16:09:01Z</dc:date>
    <item>
      <title>Join two tables by matching common column name</title>
      <link>https://community.jmp.com/t5/Discussions/Join-two-tables-by-matching-common-column-name/m-p/252717#M49606</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have two tables as below.&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Table1 :&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Name&lt;/TD&gt;&lt;TD&gt;Section&lt;/TD&gt;&lt;TD&gt;Subject&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Adam&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Math&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bob&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;science&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Chris&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;english&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Table2:&amp;nbsp;&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Name&lt;/TD&gt;&lt;TD&gt;Section&lt;/TD&gt;&lt;TD&gt;Score&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Adam&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;80&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bob&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Chris&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;84&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to join both table in jsl and get the following output table but I don't want to give matching column names explicitly. Matching columns would be the columns with same column name in both table. Matching columns can vary. It can be 2 (as in shown example) or 3 or more but matching column would have same column name.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;output:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Name&lt;/TD&gt;&lt;TD&gt;Section&lt;/TD&gt;&lt;TD&gt;Subject&lt;/TD&gt;&lt;TD&gt;Score&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Adam&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Math&lt;/TD&gt;&lt;TD&gt;80&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bob&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;science&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Chris&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;english&lt;/TD&gt;&lt;TD&gt;84&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks :)&lt;/img&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Mar 2020 12:23:49 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Join-two-tables-by-matching-common-column-name/m-p/252717#M49606</guid>
      <dc:creator>Rajat</dc:creator>
      <dc:date>2020-03-17T12:23:49Z</dc:date>
    </item>
    <item>
      <title>Re: Join two tables by matching common column name</title>
      <link>https://community.jmp.com/t5/Discussions/Join-two-tables-by-matching-common-column-name/m-p/252982#M49660</link>
      <description>&lt;P&gt;This should do it:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;DT1 = New Table("DT1",
	&amp;lt;&amp;lt; Add Rows(3),
	&amp;lt;&amp;lt; New Column("Name", character, Values({"Adam","Bob","Chris"})),
	&amp;lt;&amp;lt; New Column("Section", character, Values({"A","A","B"})),
	&amp;lt;&amp;lt; New Column("Subject", character, Values({"Math","Science","English"}))
);
DT2 = New Table("DT2",
	&amp;lt;&amp;lt; Add Rows(3),
	&amp;lt;&amp;lt; New Column("Name", character, Values({"Adam","Bob","Chris"})),
	&amp;lt;&amp;lt; New Column("Section", character, Values({"A","A","B"})),
	&amp;lt;&amp;lt; New Column("Score", numeric,continous, Values({80,90,84}))
);
LSTcols1 = DT1 &amp;lt;&amp;lt; Get Column Names(string);
LSTcols2 = DT2 &amp;lt;&amp;lt; Get Column Names(string);

STRjoinCols = "";

For(LVC=1,LVC&amp;lt;=N Items(LSTcols1),LVC++,
	STRcol = LSTcols1[LVC];
	If(
		Contains(LSTCols2,STRcol)
	,
		If(
			STRjoinCols == ""
		,
			STRjoinCols = ":"||STRcol||"==:"||STRcol
		,
			STRjoinCols = STRjoinCols||", :"||STRcol||"==:"||STRcol
		);
	);
);
expr = Eval Insert(
	"\[
	DT3 = DT1 &amp;lt;&amp;lt; Join(
				With( DT2 ),
				Merge Same Name Columns,
				Match Flag( 0 ),
				By Matching Columns( ^STRjoinCols^ ),
				Drop multiples( 0, 0 ),
				Include Nonmatches( 0, 0 ),
				Preserve main table order( 0 ),
				Output Table( "DT3" )
	);
	]\"
);
Eval( Parse( expr ) );&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 18 Mar 2020 16:09:01 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Join-two-tables-by-matching-common-column-name/m-p/252982#M49660</guid>
      <dc:creator>david707</dc:creator>
      <dc:date>2020-03-18T16:09:01Z</dc:date>
    </item>
  </channel>
</rss>

