Actually 'name' comes from products. Maybe it would be clearer this way: SELECT purchase_orders.issue_date, purchase_orders.number, products.name FROM purchase_orders LEFT JOIN purchase_order_products ON purchase_order_products.purchase_order_id = purchase_orders.id LEFT JOIN products ON purchase_order_products.product_id = products.id
On Oct 6, 12:13 pm, Massimo Di Pierro <[email protected]> wrote: > Why do you left join products if you do not select anything from it? > > On Oct 6, 7:40 am, Cliff <[email protected]> wrote: > > > > > Here is the model, simplified: > > > db.define_table('purchase_orders', > > Field('issue_date', 'date', > > comment = SPAN(a_comment, _style='color:orange;')), > > Field('number', length=24, requires=IS_NOT_EMPTY(), > > required=True, notnull=True, > > comment=SPAN('Required', _style='color:orange;')), > > Field('closed', 'boolean', readable=False, writable=False, > > default=False), > > format = '%(number)s' > > ) > > db.define_table( 'products', > > Field('name', length=256, required=True, notnull=True), > > Field('internal_item_number', length=36), > > format = '%(name)s' > > ) > > db.define_table('purchase_order_products', > > Field('purchase_order_id', db.purchase_orders), > > Field('product_id', db.products), > > Field('quantity', 'decimal(12,3)'), > > ) > > > in SQL I can make this query: > > SELECT issue_date, number, name FROM purchase_orders LEFT JOIN > > purchase_order_products ON purchase_order_products.purchase_order_id = > > purchase_orders.id LEFT JOIN products ON > > purchase_order_products.product_id = products.id > > > How do I do this in Web2py?

