If they fit in ram and have the same column names:

rows = db(db.table1).select()
rows = rows + db(db.table2).select()
rows = rows + db(db.table3).select()
rows = rows.sort(lambda row: row.col8) # optional

On Monday, 8 April 2013 15:29:35 UTC-5, David S wrote:
>
> I have three tables, db.table1 db.table2 and db.table3. They are identical 
> except for the information stored in each. table3 is blank and after 
> running some code should contain the combination of the values in table1 
> and table2. 
>
> An example (<uuid> is generated by web2py_uuid()):
>
> db.table1:
> col1 col2 col3 col4 col5 col6 col7 col8
> 1    A    Z    x    x              <uuid>
> 2    B    Y    x    x              <uuid>
> 3    C    X    x    x              <uuid>
> 4    D    W    x    x              <uuid>
>
> db.table2:
> col1 col2 col3 col4 col5 col6 col7 col8
> 1    A    Z              y    y    <uuid>
> 2    B    Y              y    y    <uuid>
> 3    C    X              y    y    <uuid>
> 4    D    W              y    y    <uuid>
>
> After merging, db.table3 should look like this:
>
> db.table3:
> col1 col2 col3 col4 col5 col6 col7 col8
> 1    A    Z    x    x    y    y    <uuid>
> 2    B    Y    x    x    y    y    <uuid>
> 3    C    X    x    x    y    y    <uuid>
> 4    D    W    x    x    y    y    <uuid>
>
> After some research, I found that exporting table1 and table2 to separate 
> .csv files and then importing them into table3 should be an easy way to do 
> this, however it does not seem to be working for me. Below is the code I've 
> tried to use:
>
> rows = db(db.table1).select()
> rows.export_to_csv_file(open('table1.csv','wb'))
> db.table3.import_from_csv_file(open('table1.csv','rb'),unique='col1')
>     
> rows = db(db.table2).select()
> rows.export_to_csv_file(open('table2.csv','wb'))
> db.table3.import_from_csv_file(open('table2.csv','rb'),unique='col1')
>
> The problem I'm having is only the values from table2 are showing in 
> table3.
>
> I've also tried using a join like this:
>
> db(db.table1.col1 == db.table2.col1).select()
>
> But it creates something which looks like this:
>
> col1 col2 col3 col4 col5 col6 col7 col8   col1 col2 col3 col4 col5 col6 
> col7 col8
> 1    A    Z    x    x              <uuid> 1    A    Z              y    
> y    <uuid>
> 2    B    Y    x    x              <uuid> 2    B    Y              y    
> y    <uuid>
> 3    C    X    x    x              <uuid> 3    C    X              y    
> y    <uuid>
> 4    D    W    x    x              <uuid> 4    D    W              y    
> y    <uuid>
>
> Is there another way of doing the join which would produce table3 how I'd 
> like it formatted?
>
> Anyone have a suggestion or better way to do this?
>
> Thanks,
> David
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to