I have tried to translate this query:

select A.id, A.surname, A.firstname, A.name, A.birthdate,
       A.race, A.gender, A.address, C.title as Journal, C.subject
from  akb_authors A
left join akb_authors_article_link B on
    (B.author = A.uuid)
left join akb_articles D on (D.uuid = B.article)
left join akb_journal C on (C.uuid = D.journal)

where A.id in (507182, 788825)

to DAL:

query = db.akb_authors.id.belongs(ids)
    left = (db.akb_authors_article_link.on(db.akb_authors.uuid ==
db.akb_authors_article_link.author),
            db.akb_articles.on(db.akb_articles.uuid ==
db.akb_authors_article_link.article),
            db.akb_journal.on(db.akb_journal.uuid ==
db.akb_articles.journal))
    fields = [db.akb_authors.id, db.akb_authors.surname,
db.akb_authors.firstname,
              db.akb_authors.name, db.akb_authors.birthdate,
db.akb_authors.gender,
              db.akb_authors.race, db.akb_authors.address,
db.akb_journal.title,
              db.akb_journal.subject ]
    headers = {'akb_journal.title': 'Journal'}

    form = SQLFORM.grid(query,
                        fields=fields,
                        maxtextlength = 100,
                        deletable = False,
                        editable = False,
                        details = False,
                        create = False,
                        headers = headers,
                        left = left,
                        selectable = lambda ids: hanteer_verfyning(ids.id),
                        orderby = db.akb_authors.id)

but it ignores all the fields that are not in the first table and prints
'unsupported query' on the screen:

SELECT  akb_authors.id, akb_authors.surname, akb_authors.firstname,
akb_authors.name, akb_authors.birthdate, akb_authors.gender,
akb_authors.race, akb_authors.address
FROM akb_authors
LEFT JOIN akb_authors_article_link ON (akb_authors.uuid =
akb_authors_article_link.author)
LEFT JOIN akb_articles ON (akb_articles.uuid =
akb_authors_article_link.article)
LEFT JOIN akb_journal ON (akb_journal.uuid = akb_articles.journal)
WHERE (akb_authors.id IN (507182,788825))
ORDER BY akb_authors.id;

So how do I get the grid to show the two fields in akb_journal for me?

Regards
Johann

-- 
Because experiencing your loyal love is better than life itself,
my lips will praise you.  (Psalm 63:3)

Reply via email to