3. Querying in Qcodo
* Qcodo Query: The QQ Clause Classes
<< * Qcodo Query: The QQ Condition Classes   |   Back to Main   |   * Qcodo Query: Handling Association Tables >>

View Source
will open in a new window
Qcodo Query Clauses
All Qcodo Query method calls take in an optional set of QQ Clauses. QQ Clauses allow you alter the result set by performing the equivalents of most of your major SQL clauses, including JOIN, ORDER BY, GROUP BY and DISTINCT.

The following is the list of QQ Clause classes and what parameters they take: OrderBy and GroupBy follow the conventions of SQL ORDER BY and GROUP BY. It takes in a list of one or more QQ Column Nodes. This list could be a parameterized list and/or an array.

Specifically for OrderBy, to specify a QQ Node that you wish to order by in descending order, add a "false" after the QQ Node. So for example, QQ::OrderBy(QQN::Person()->LastName, false, QQN::Person()->FirstName) will do the SQL equivalent of "ORDER BY last_name DESC, first_name ASC".

Count, Minimum, Maximum and Average are aggregation-related clauses, and only work when GroupBy is specified. These methods take in an attribute name, which can then be restored using GetVirtualAttribute() on the object.

Expand and ExapndAsArray deals with Object Expansion / Early Binding. More on this can be seen in the "Early Binding of Related Objects" example.

LimitInfo will limit the result set. The first integer is the maximum number of rows you wish to limit the query to. The optional second integer is the offset (if any).

And finally, Distinct will cause the query to be called with SELECT DISTINCT.

All clauses must be wrapped around a single QQ::Clause() call, which takes in any number of clause classes for your query.

Select all People, Ordered by Last Name then First Name

asd asd
Linda Brady
df df
Teo Dirac
Mike Ho
Kendalll Jenner
Wendy jose
kalle kula
Jacob Pratt
Samantha prueba
Ben Robinson
sdfsdf sdfsdfsdf
Alejnadro Smith
Jennifer Smith
Brett Smiths
wdt t
w w
Karen Wolfe
w wwwgggggggg

Select all People, Ordered by Last Name then First Name, Limited to the first 4 results

asd asd
Linda Brady
df df
Teo Dirac

Select all Projects and the Count of Team Members (if applicable)

ACME Website1 (0 team members)
State College HR Sxzxxystem (4 team members)
xx (8 team members)
ACME Payments (2 team members)