Querying multiple tables with joins

From DreamFactory
Jump to: navigation, search
DreamFactoryTutorialsQuerying multiple tables with joins
(Created page with "### Tutorial Query a SQL database for records in different tables joined by key. Try these examples in the 'API Docs' tab of the DreamFactory Admin Console or from the comman...")
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
### Tutorial
+
GET related records in multiple tables from a SQL database. Try these examples in the 'API Docs' tab of the DreamFactory Admin Console or from the command line with cURL.
  
Query a SQL database for records in different tables joined by key. Try these examples in the 'API Docs' tab of the DreamFactory Admin Console or from the command line with cURL.
+
Note that passing * as the 'related' parameter will return data for all related tables.
  
Note that passing * as the 'related' parameter will return all records by foreign key.
+
=== API Endpoint ===
 
+
### API Endpoint
+
  
 
<pre>GET https://{url}/api/v2/{api_name}/_table/{table_name}?related={foreign_key_field}</pre>
 
<pre>GET https://{url}/api/v2/{api_name}/_table/{table_name}?related={foreign_key_field}</pre>
  
### API Docs Screenshot
+
=== API Docs Screenshot ===
  
[[File:Swagger-filter.png|1000px]]
+
[[File:Swagger-related.png|1000px]]
  
### Example - Fetch contact and contact_info_by_contact_id records in one API call. Each contact has zero or more contact_info_by_contact_id records.
+
=== Example - Fetch contact and contact_info_by_contact_id records in one API call. ===
  
 
* Table name: contact
 
* Table name: contact
* Related parameter in API call: <pre>related=contact_info_by_contact_id</pre>
+
* Related parameter in API call: <pre>contact_info_by_contact_id</pre>
 
* Request URL: <pre>https://foo.com/api/v2/db/_table/contact?related=contact_info_by_contact_id</pre>
 
* Request URL: <pre>https://foo.com/api/v2/db/_table/contact?related=contact_info_by_contact_id</pre>
  
### Example - Fetch  contact and all related records by foreign key in one API call.
+
=== Example - Fetch contact, contact_info_by_contact_id, and contact_group_relationship_by_contact_id records in one API call.  ===
 +
 
 +
* Table name: contact
 +
* Related parameter in API call: <pre>contact_info_by_contact_id, contact_group_relationship_by_contact_id</pre>
 +
* Request URL: <pre>https://foo.com/api/v2/db/_table/contact?related=contact_info_by_contact_id%2C%20contact_group_relationship_by_contact_id</pre>
 +
 
 +
=== Example - Fetch  contact and all related records by foreign key in one API call. ===
  
 
* Table name: contact
 
* Table name: contact
* Filter parameter in API call: <pre>related=*</pre>
+
* Related parameter in API call: <pre>*</pre>
 
* Request URL: <pre>https://foo.com/api/v2/db/_table/contact?related=*</pre>
 
* Request URL: <pre>https://foo.com/api/v2/db/_table/contact?related=*</pre>

Latest revision as of 20:13, 22 June 2016

GET related records in multiple tables from a SQL database. Try these examples in the 'API Docs' tab of the DreamFactory Admin Console or from the command line with cURL.

Note that passing * as the 'related' parameter will return data for all related tables.

API Endpoint

GET https://{url}/api/v2/{api_name}/_table/{table_name}?related={foreign_key_field}

API Docs Screenshot

Swagger-related.png

Example - Fetch contact and contact_info_by_contact_id records in one API call.

  • Table name: contact
  • Related parameter in API call:
    contact_info_by_contact_id
  • Request URL:
    https://foo.com/api/v2/db/_table/contact?related=contact_info_by_contact_id

Example - Fetch contact, contact_info_by_contact_id, and contact_group_relationship_by_contact_id records in one API call.

  • Table name: contact
  • Related parameter in API call:
    contact_info_by_contact_id, contact_group_relationship_by_contact_id
  • Request URL:
    https://foo.com/api/v2/db/_table/contact?related=contact_info_by_contact_id%2C%20contact_group_relationship_by_contact_id

Example - Fetch contact and all related records by foreign key in one API call.

  • Table name: contact
  • Related parameter in API call:
    *
  • Request URL:
    https://foo.com/api/v2/db/_table/contact?related=*