This commit is contained in:
Kijin Sung 2023-11-21 22:13:56 +09:00
parent ad5c3c0f5c
commit 40d3ce4f46
2 changed files with 15 additions and 6 deletions

View file

@ -1,14 +1,22 @@
<query id="selectSubqueryTest1" action="select">
<tables>
<table name="documents" />
<table query="true" alias="m">
<table query="true" alias="m" type="join">
<tables>
<table name="member" />
<table name="member">
<conditions>
<condition operation="equal" column="documents.regdate" default="m.regdate" />
</conditions>
</table>
</tables>
<columns>
<column name="member_srl" />
<column name="nick_name" />
<column name="regdate" />
</columns>
<conditions>
<condition operation="equal" column="documents.nick_name" var="nick_name" />
</conditions>
</table>
</tables>
<columns>

View file

@ -244,18 +244,19 @@ class DBQueryParserTest extends \Codeception\Test\Unit
$this->assertTrue($query->tables['m'] instanceof Rhymix\Framework\Parsers\DBQuery\Query);
$this->assertEquals(1, count($query->tables['m']->tables));
$this->assertEquals('member', $query->tables['m']->tables['member']->name);
$this->assertEquals(2, count($query->tables['m']->columns));
$this->assertEquals(3, count($query->tables['m']->columns));
$this->assertEquals(1, count($query->columns));
$this->assertEquals('documents.member_srl', $query->conditions[0]->column);
$this->assertEquals('m.member_srl', $query->conditions[0]->default);
$sql = $query->getQueryString('rx_', []);
$sql = $query->getQueryString('rx_', ['nick_name' => 'foobar']);
$params = $query->getQueryParams();
$this->assertEquals('SELECT `documents`.* FROM `rx_documents` AS `documents`, ' .
'(SELECT `member_srl`, `nick_name` FROM `rx_member` AS `member`) AS `m` ' .
'(SELECT `member_srl`, `nick_name`, `regdate` FROM `rx_member` AS `member` ' .
'WHERE `documents`.`nick_name` = ?) AS `m` ' .
'WHERE `documents`.`member_srl` = `m`.`member_srl`', $sql);
$this->assertEquals([], $params);
$this->assertEquals(['foobar'], $params);
}
public function testSubquery2()