diff --git a/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php b/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php
index fb5b3e9294d6067ee23558e94de2586fd5e55347..5a947176923dac50b58ad3d45a53786a5e2a69e7 100644
--- a/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php
+++ b/src/Lunr/Gravity/Database/DatabaseDMLQueryBuilder.php
@@ -113,6 +113,12 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
     protected $join;
 
     /**
+     * SQL Query part: USING clause
+     * @var String
+     */
+    protected $using;
+
+    /**
      * SQL Query part: WHERE clause
      * @var String
      */
@@ -476,6 +482,27 @@ abstract class DatabaseDMLQueryBuilder implements DMLQueryBuilderInterface
     }
 
     /**
+     * Define USING clause of the SQL statement.
+     *
+     * @param String $name Column name to use.
+     */
+    function sql_using($name)
+    {
+
+        if (empty($this->using))
+        {
+            $this->using = 'USING (';
+        }
+        elseif (substr($this->using, -1) == ')')
+        {
+            $this->using = rtrim($this->using, ')');
+            $this->using .= ', ';
+        }
+
+        $this->using .= $name . ')';
+    }
+
+    /**
      * Define INTO clause of the SQL statement.
      *
      * @param String $table Table reference
diff --git a/src/Lunr/Gravity/Database/MySQL/MySQLSimpleDMLQueryBuilder.php b/src/Lunr/Gravity/Database/MySQL/MySQLSimpleDMLQueryBuilder.php
index 0a36f773844f819fb5a7439945060fce6885d8d4..7ac67619d5ffe768a859ab65c2e597f34203ae63 100644
--- a/src/Lunr/Gravity/Database/MySQL/MySQLSimpleDMLQueryBuilder.php
+++ b/src/Lunr/Gravity/Database/MySQL/MySQLSimpleDMLQueryBuilder.php
@@ -155,6 +155,20 @@ class MySQLSimpleDMLQueryBuilder extends MySQLDMLQueryBuilder
     }
 
     /**
+     * Define USING part of the SQL statement.
+     *
+     * @param array/string $using columns to use.
+     *
+     * @return MySQLDMLQueryBuilder $self Self reference
+     */
+    public function using($using)
+    {
+        $columns = is_array($using) == true ? implode(', ', $using) : $using;
+
+        return parent::using($this->escaper->column(rtrim($columns, ', ')));
+    }
+
+    /**
      * Define ON part of a JOIN clause with LIKE comparator of the SQL statement.
      *
      * @param String $left   Left expression
diff --git a/src/Lunr/Gravity/Database/MySQL/Tests/MySQLSimpleDMLQueryBuilderSelectTest.php b/src/Lunr/Gravity/Database/MySQL/Tests/MySQLSimpleDMLQueryBuilderSelectTest.php
index db2f331b0b307fe7873c3b711c82990f01e31f8a..a181a8e3ce5cb45f3a82ae10470e04bf12575c39 100644
--- a/src/Lunr/Gravity/Database/MySQL/Tests/MySQLSimpleDMLQueryBuilderSelectTest.php
+++ b/src/Lunr/Gravity/Database/MySQL/Tests/MySQLSimpleDMLQueryBuilderSelectTest.php
@@ -98,6 +98,23 @@ class MySQLSimpleDMLQueryBuilderSelectTest extends MySQLSimpleDMLQueryBuilderTes
     }
 
     /**
+     * Test using().
+     *
+     * @covers Lunr\Gravity\Database\MySQL\MySQLSimpleDMLQueryBuilder::using
+     */
+    public function testUsing()
+    {
+        $this->escaper->expects($this->once())
+                      ->method('table')
+                      ->with($this->equalTo('table'))
+                      ->will($this->returnValue('`table`'));
+
+        $this->class->using('table');
+
+        $this->assertEquals('USING (`table`)', $this->get_reflection_property_value('using'));
+    }
+
+    /**
      * Test group_by().
      *
      * @covers Lunr\Gravity\Database\MySQL\MySQLSimpleDMLQueryBuilder::group_by
diff --git a/src/Lunr/Gravity/Database/SQLDMLQueryBuilder.php b/src/Lunr/Gravity/Database/SQLDMLQueryBuilder.php
index 6296e70626d239c092488dd7d59ef2c218c322b2..b0128db99bc4cb46d65bc025136454b850712c89 100644
--- a/src/Lunr/Gravity/Database/SQLDMLQueryBuilder.php
+++ b/src/Lunr/Gravity/Database/SQLDMLQueryBuilder.php
@@ -187,6 +187,21 @@ abstract class SQLDMLQueryBuilder extends DatabaseDMLQueryBuilder
     }
 
     /**
+     * Define USING part of the SQL statement.
+     *
+     * @param array/string  $using Column name to use.
+     *
+     * @return SQLDMLQueryBuilder $self Self reference
+     */
+    public function using($using)
+    {
+        $columns = is_array($using) == true ? implode(', ', $using) : $using;
+
+        $this->sql_using($columns);
+        return $this;
+    }
+
+    /**
      * Define ON part of a JOIN clause with LIKE comparator of the SQL statement.
      *
      * @param String $left   Left expression
diff --git a/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsUsingTest.php b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsUsingTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..8fe3d8562f8dbfc90d5f64bf7fbd491f3b3a3c8c
--- /dev/null
+++ b/src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsUsingTest.php
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * This file contains the DatabaseDMLQueryBuilderQueryPartsUsingTest class.
+ *
+ * PHP Version 5.4
+ *
+ * @package    Lunr\Gravity\Database
+ * @author     Patrick Valk <p.valk@m2mobi.com>
+ * @copyright  2016, M2Mobi BV, Amsterdam, The Netherlands
+ * @license    http://lunr.nl/LICENSE MIT License
+ */
+
+namespace Lunr\Gravity\Database\Tests;
+
+/**
+ * This class contains the tests for the query parts methods.
+ *
+ * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder
+ */
+class DatabaseDMLQueryBuilderQueryPartsUsingTest extends DatabaseDMLQueryBuilderTest
+{
+
+    /**
+     * Test sql_using.
+     */
+    public function testUsing()
+    {
+        $method = $this->get_accessible_reflection_method('sql_using');
+
+        $method->invokeArgs($this->class, [ 'table' ]);
+
+        $string = 'USING (table)';
+
+        $this->assertEquals($string, $this->get_reflection_property_value('using'));
+    }
+
+    /**
+     * Test sql_using.
+     */
+    public function testUsingTwice()
+    {
+        $method = $this->get_accessible_reflection_method('sql_using');
+
+        $method->invokeArgs($this->class, [ 'table1' ]);
+        $method->invokeArgs($this->class, [ 'table2' ]);
+
+        $string = 'USING (table1, table2)';
+
+        $this->assertEquals($string, $this->get_reflection_property_value('using'));
+    }
+
+    /**
+     * Test specifying the using part.
+     *
+     * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder::sql_using
+     */
+    public function testUsingArray()
+    {
+        $method = $this->get_accessible_reflection_method('sql_using');
+
+        $method->invokeArgs($this->class, [ 'same_table_name1, same_table_name2']);
+
+        $string = 'USING (same_table_name1, same_table_name2)';
+
+        $this->assertEquals($string, $this->get_reflection_property_value('using'));
+    }
+
+}
+
+?>
diff --git a/src/Lunr/Gravity/Database/Tests/SQLDMLQueryBuilderUsingTest.php b/src/Lunr/Gravity/Database/Tests/SQLDMLQueryBuilderUsingTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..6fa78f7d927ac391fe7182655cfc79903e34f43e
--- /dev/null
+++ b/src/Lunr/Gravity/Database/Tests/SQLDMLQueryBuilderUsingTest.php
@@ -0,0 +1,69 @@
+<?php
+
+/**
+ * This file contains the SQLDMLQueryBuilderUsingTest class.
+ *
+ * PHP Version 5.4
+ *
+ * @package    Lunr\Gravity\Database
+ * @author     Patrick Valk <p.valk@m2mobi.com>
+ * @copyright  2016, M2Mobi BV, Amsterdam, The Netherlands
+ * @license    http://lunr.nl/LICENSE MIT License
+ */
+
+namespace Lunr\Gravity\Database\Tests;
+
+/**
+ * This class contains the tests for the query parts methods.
+ *
+ * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder
+ */
+class SQLDMLQueryBuilderUsingTest extends SQLDMLQueryBuilderTest
+{
+
+    /**
+     * Test specifying the using part.
+     *
+     * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder::sql_using
+     */
+    public function testUsing()
+    {
+        $this->class->using('table');
+
+        $string = 'USING (table)';
+
+        $this->assertEquals($string, $this->get_reflection_property_value('using'));
+    }
+
+    /**
+     * Test specifying the using part.
+     *
+     * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder::sql_using
+     */
+    public function testUsingTwice()
+    {
+        $this->class->using('same_table_name1');
+        $this->class->using('same_table_name2');
+
+        $string = 'USING (same_table_name1, same_table_name2)';
+
+        $this->assertEquals($string, $this->get_reflection_property_value('using'));
+    }
+
+    /**
+     * Test specifying the using part.
+     *
+     * @covers Lunr\Gravity\Database\DatabaseDMLQueryBuilder::sql_using
+     */
+    public function testUsingArray()
+    {
+        $this->class->using(['same_table_name1', 'same_table_name2']);
+
+        $string = 'USING (same_table_name1, same_table_name2)';
+
+        $this->assertEquals($string, $this->get_reflection_property_value('using'));
+    }
+
+}
+
+?>
diff --git a/tests/phpunit.xml b/tests/phpunit.xml
index ecc5759f5caa9cab0b4d4b91e12339342b46b99c..2b5f9cf8498d924a8bf0ce1f867e983d72ad6db0 100644
--- a/tests/phpunit.xml
+++ b/tests/phpunit.xml
@@ -120,6 +120,7 @@
             <file>../src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsDeleteTest.php</file>
             <file>../src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsInsertTest.php</file>
             <file>../src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsUpdateTest.php</file>
+            <file>../src/Lunr/Gravity/Database/Tests/DatabaseDMLQueryBuilderQueryPartsUsingTest.php</file>
             <file>../src/Lunr/Gravity/Database/Tests/SQLDMLQueryBuilderSelectTest.php</file>
             <file>../src/Lunr/Gravity/Database/Tests/SQLDMLQueryBuilderInsertTest.php</file>
             <file>../src/Lunr/Gravity/Database/Tests/SQLDMLQueryBuilderUpdateTest.php</file>
@@ -127,6 +128,7 @@
             <file>../src/Lunr/Gravity/Database/Tests/SQLDMLQueryBuilderConditionTest.php</file>
             <file>../src/Lunr/Gravity/Database/Tests/SQLDMLQueryBuilderOrderByTest.php</file>
             <file>../src/Lunr/Gravity/Database/Tests/SQLDMLQueryBuilderLimitTest.php</file>
+            <file>../src/Lunr/Gravity/Database/Tests/SQLDMLQueryBuilderUsingTest.php</file>
             <file>../src/Lunr/Gravity/Database/MySQL/Tests/MySQLDMLQueryBuilderSelectTest.php</file>
             <file>../src/Lunr/Gravity/Database/MySQL/Tests/MySQLDMLQueryBuilderDeleteTest.php</file>
             <file>../src/Lunr/Gravity/Database/MySQL/Tests/MySQLDMLQueryBuilderInsertTest.php</file>
