Пример #1
0
 protected static function select_set($operator, $args)
 {
     $options = array();
     if (is_a($args[0], 'SQLMakerSelect') || is_a($args[0], 'SQLMakerSelectSet')) {
         $options['quote_char'] = $args[0]->quote_char;
         $options['name_sep'] = $args[0]->name_sep;
         $options['new_line'] = $args[0]->new_line;
     }
     $stmt = new SQLMakerSelectSet($operator, $options);
     foreach ($args as $arg) {
         $stmt->add_statement($arg);
     }
     return $stmt;
 }
Пример #2
0
function multiple($t)
{
    global $s1, $s2, $s3;
    $set = SQLMakerSelectSet::intersect(SQLMakerSelectSet::except($s1, $s2), $s3);
    $t->is($set->as_sql(), 'SELECT id FROM table1 WHERE (foo = ?) EXCEPT SELECT id FROM table2 WHERE (bar = ?) INTERSECT SELECT id FROM table3 WHERE (baz = ?)');
    $t->is(implode(',', $set->bind()), '100,200,300');
    $set = SQLMakerSelectSet::intersect_all(SQLMakerSelectSet::except($s1, $s2), $s3);
    $t->is($set->as_sql(), 'SELECT id FROM table1 WHERE (foo = ?) EXCEPT SELECT id FROM table2 WHERE (bar = ?) INTERSECT ALL SELECT id FROM table3 WHERE (baz = ?)');
    $t->is(implode(',', $set->bind()), '100,200,300');
    $set = SQLMakerSelectSet::union(SQLMakerSelectSet::except($s1, $s2), $s3);
    $t->is($set->as_sql(), 'SELECT id FROM table1 WHERE (foo = ?) EXCEPT SELECT id FROM table2 WHERE (bar = ?) UNION SELECT id FROM table3 WHERE (baz = ?)');
    $t->is(implode(',', $set->bind()), '100,200,300');
    $set = SQLMakerSelectSet::union(SQLMakerSelectSet::except_all($s1, $s2), $s3);
    $t->is($set->as_sql(), 'SELECT id FROM table1 WHERE (foo = ?) EXCEPT ALL SELECT id FROM table2 WHERE (bar = ?) UNION SELECT id FROM table3 WHERE (baz = ?)');
    $t->is(implode(',', $set->bind()), '100,200,300');
}