DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Perl (http://www.daniweb.com/forums/forum112.html)
-   -   Compare 2 tables (http://www.daniweb.com/forums/thread199465.html)

me8042 Jun 24th, 2009 8:31 am
Compare 2 tables
 
Hi everybody,
I want to compare 2 tables contents. My tables are:
Table1
------------------
ID || Value
------------------
1 || forum_list1
2 || Message_list1
3 || Search1
4 || Search5
5 || Search11
6 || Log_out
7 || LOG

Table2
--------------------------------------------
ID || Value1 || Value2
---------------------------------------------
1 || rd_forum_list1_no ||
2 || wr_Message_list1_yes ||
3 || rd_Search1_no ||
4 || rd_Search5_no ||
5 || rd_Search11_no ||
6 || rd_Log_out_no ||
7 || rd_LOG_no ||
8 || wr_forum_list1_no ||
9 || rd_Message_list1_yes ||
10 || 123_Search1_456 ||
11 || 123_Search11_456 ||

I want to compare both the tables content and if the contents are similar then place the ID of table no. one in Table2.Value2 but discard all the rows with "wr_". Also note that in case of Search1 and Search11, I want the comaprison very exact as

Table2
--------------------------------------------
ID || Value1 || Value2
---------------------------------------------
1 || rd_forum_list1_no || 1
2 || wr_Message_list1_yes ||
3 || rd_Search1_no || 3
4 || rd_Search5_no || 4
5 || rd_Search11_no || 5
6 || rd_Log_out_no || 6
7 || rd_LOG_no || 7
8 || wr_forum_list1_no ||
9 || rd_Message_list1_yes || 2
10 || 123_Search1_456 || 3
11 || 123_Search11_456 || 5

I tried implementing this by following code:
$query = "SELECT Table1.value, Table2.value1 FROM Table1,Table2 WHERE Table2.value1 LIKE CONCAT('%',Table1.value,'%')";
$result =mysql_query($query) or die(mysql_error());
while(@row = mysql_ftech_array($result))
{
$updatetable2= UPDATE Table2.value2 SET Table2.value2 =(@Table1.value);
}

But its not working.. please help..
thanks in advance

msvinaykumar Jun 27th, 2009 5:06 am
Re: Compare 2 tables
 
If u are running code in Unix

Then run two sql quires

one for table one > redirect to file1
and for table two > redirect to file2

then do
sdiff file1 file2  > file3

grep for lines other than "|" pipe symbol
and use cut command


All times are GMT -4. The time now is 8:23 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC