Description
PDOModel join functions allows to select data from multiple tables using various JOIN operation. You need to specify
join table, join condition and type of join ("LEFT JOIN", "INNER JOIN"). You can apply all select operations functions
with join operation also.
Function Defination
void function joinTables($joinTableName, $joinCondition, $joinType = "INNER JOIN") ;
Parameters Details
| Details | Type | Example |
|---|---|---|
| $joinTableName - table name, to perform join query | string | Any valid tablename e.g. "select * from tablename" |
| $joinCondition - condition by which tables will be joined | string | e.g. "wp_posts.ID = wp_postmeta.post_id" |
| $joinType - type of join | string | Any valid jointype e.g. "INNER JOIN", "LEFT JOIN", default is INNER JOIN |
Examples
$pdomodel = new PDOModel(); //create object of the PDOModel class
$pdomodel->connect("localhost", "root", "", "pdocrud");//connect to database
/* Join function */
$pdomodel->joinTables("wp_postmeta", "wp_posts.ID = wp_postmeta.post_id","INNER JOIN");//specify join
$result = $pdomodel->select("wp_posts");//call select query
More Examples
//Example 1
$pdomodel->columns = array("wp_posts.id", "post_date", "post_title");
$pdomodel->joinTables("wp_postmeta", "wp_posts.ID = wp_postmeta.post_id","INNER JOIN");
$pdomodel->limit = "0,3";
$result = $pdomodel->select("wp_posts");
//Example 2
$pdomodel->columns = array("p.id", "post_date", "post_title");
$pdomodel->where("post_title", "P%", "LIKE");
$pdomodel->where("post_date", array('2016-03-01','2016-03-10'), "BETWEEN");
$pdomodel->joinTables("wp_postmeta as pm", "p.ID = pm.post_id","LEFT OUTER JOIN");
$pdomodel->limit = "0,3";
$result = $pdomodel->select("wp_posts as p");
Result/Output
By default, it returns data in associative array format. You can set return type using the fetch mode.
Debug
| Option | Details | Example |
|---|---|---|
| $pdomodel->getLastQuery(); | Return last query executed | SELECT `p`.`id`,`post_date`,`post_title` FROM `wp_posts` AS `p` LEFT OUTER JOIN `wp_postmeta` AS `pm` ON p.ID = pm.post_id WHERE `post_title`LIKE ? AND `post_date` BETWEEN ? AND ? LIMIT 0,3 |
| print_r($pdomodel->error) | Print errors (if any) | |
| $pdomodel->totalRows; | Total rows returned for select query | 10 |