4 ms·
How do I join tables 1:1 without creating a subfield, i.e.: table1: id, name table2: table1_id, level Desired result: {id, name, level}
by historyloop 5y ago
How do I join tables 1:1 without creating a subfield, i.e.:
table1: id, name
table2: table1_id, level
Desired result:
{id, name, level}
- msully4321 5y agoThe most direct implementation of what you want would be: SELECT (Table1.id, Table1.name, Table2.level, Table2.table1_id) FILTER Table1.id = Table2.table1_id; (This has a somewhat annoying extra output of table1_id, which could be projected away if necessary.) If you want to use edgeql's shapes but still keep the essential join flavor, then something like: SELECT (Table1 { id, name }, Table2 { level }) FILTER Table1.id = Table2.table1_id; To make it a little more concrete, you can try this on the tutorial database (https://www.edgedb.com/tutorial https://www.edgedb.com/tutorial) SELECT (Photo {uri}, User {name, email}) FILTER Photo.author.id = User.id; The tutorial database uses links, and so instead of having an author_id we have author.id, but having an author_id property would work just fine---except that then you'd have to do all the joins manually.