From: Nick H. <nic...@ho...> - 2013-12-29 18:26:03
|
On 28/12/13 18:58, Doug Blank wrote: > I think in this instance, you would want to select two fields at once, > but not cross-product join them. Something like this propsoed syntax: > > SELECT attribute_list[value,type] as A > FROM person > WHERE gramps_id == "I12345" and A[1].string == "Identification Number"; > > (where A is the tuple (value, type) and A[1] is the type). > > That wouldn't be too bad, would it? It depends on what you are trying to achieve. If you are trying to make the Gramps database look like a SQL database, then you need to imagine an extra attribute table. The query would be something like: SELECT attribute.value FROM person JOIN attribute ON person.handle == attribute.person_handle WHERE person.gramps_id == "I12345" AND attribute.type.string == "Identification Number" Of course the attribute table doesn't actually exist, but you may wish to use the JOIN statement in some way to indicate that we wish to consider the attribute list as a table. On the other hand, if you are creating a new Gramps query language, you could make the syntax more pythonic. Regards, Nick. |