Re: [web2py] Re: REF: Join query help!

2014-02-16 Thread Teddy Nyambe
Hi,

To makes things easier I have resolved to use db.executesql() it gives a
bit more flexibility were dal object model maybe a bit complex.

Thanx for your help thus far!
On 14 Feb 2014 21:10, Teddy Nyambe software@gmail.com wrote:

 Apologies if I was not clear, when you do a cross join as in the example
 you get Rows now, and your code is as I meant it was just a typo, my need
 is to represent the record set into json object...it works well if there is
 no join, but when another table comes in the picture the way to access
 fields changes

 db.table.field

 So I want a rows to be represented as ['fieldname', 'field value],
 ['fieldname', 'field value], ['fieldname', 'field value], etc

 It's easy with a single table but when your record set has fields from
 another table it becomes a problem...this is my working iteration with
 single table but joint does not apply:

 def get_json(rs):
 json = [
 for row in rd:
  json += {
  for key, value in (row.as_dict()).values:
  json +=  ',key, ':', value,'
 json += },
json += ]


 On 14 Feb 2014 15:11, Leonel Câmara leonelcam...@gmail.com wrote:

 I'm not sure I'm understanding exactly what you're trying to do. You say
 you want to display the value of the foreign key (which would be an
 integer) but in your code you seem to be only interested in the names. So
 this may or may not be what you want.

 I've found a bug here

 rs = db(db.owner.id==db.dog.owner).select(db.owner.name, db.owner.name)

 This should be:

 rs = db(db.owner.id==db.dog.owner).select(db.owner.name, 
 db.dog.namehttp://db.owner.name/
 )

 Then you can do:

 for r in rs:
 print r.owner.name + ' : ' + r.dog.name


  --
 Resources:
 - http://web2py.com
 - http://web2py.com/book (Documentation)
 - http://github.com/web2py/web2py (Source code)
 - https://code.google.com/p/web2py/issues/list (Report Issues)
 ---
 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 web2py+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.



-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


[web2py] Re: REF: Join query help!

2014-02-14 Thread Leonel Câmara
I'm not sure I'm understanding exactly what you're trying to do. You say 
you want to display the value of the foreign key (which would be an 
integer) but in your code you seem to be only interested in the names. So 
this may or may not be what you want.

I've found a bug here

rs = db(db.owner.id==db.dog.owner).select(db.owner.name, db.owner.name)

This should be:

rs = db(db.owner.id==db.dog.owner).select(db.owner.name, 
db.dog.namehttp://db.owner.name/
)

Then you can do:

for r in rs:
print r.owner.name + ' : ' + r.dog.name


-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [web2py] Re: REF: Join query help!

2014-02-14 Thread Teddy Nyambe
Apologies if I was not clear, when you do a cross join as in the example
you get Rows now, and your code is as I meant it was just a typo, my need
is to represent the record set into json object...it works well if there is
no join, but when another table comes in the picture the way to access
fields changes

db.table.field

So I want a rows to be represented as ['fieldname', 'field value],
['fieldname', 'field value], ['fieldname', 'field value], etc

It's easy with a single table but when your record set has fields from
another table it becomes a problem...this is my working iteration with
single table but joint does not apply:

def get_json(rs):
json = [
for row in rd:
 json += {
 for key, value in (row.as_dict()).values:
 json +=  ',key, ':', value,'
json += },
   json += ]


On 14 Feb 2014 15:11, Leonel Câmara leonelcam...@gmail.com wrote:

 I'm not sure I'm understanding exactly what you're trying to do. You say
 you want to display the value of the foreign key (which would be an
 integer) but in your code you seem to be only interested in the names. So
 this may or may not be what you want.

 I've found a bug here

 rs = db(db.owner.id==db.dog.owner).select(db.owner.name, db.owner.name)

 This should be:

 rs = db(db.owner.id==db.dog.owner).select(db.owner.name, 
 db.dog.namehttp://db.owner.name/
 )

 Then you can do:

 for r in rs:
 print r.owner.name + ' : ' + r.dog.name


  --
 Resources:
 - http://web2py.com
 - http://web2py.com/book (Documentation)
 - http://github.com/web2py/web2py (Source code)
 - https://code.google.com/p/web2py/issues/list (Report Issues)
 ---
 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 web2py+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.


-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.