Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* 自己結合 [#c9b292e5]
*** 自己結合1 [#c1729252]
SELECT XXX FROM category me JOIN category cate2 ON cate1...
$rs = $rs->search({},
{
from => [
{ me => 'category' },
[ { cate2 => 'category' }, { 'me.parent_cate...
]
}
);
*** 自己結合2 [#f2db902b]
SELECT
goods.*,
cate1.category_name AS category_name, cate2.category_n...
FROM
goods
JOIN
category cate1 ON goods.category_id = cate1.category_id
JOIN
category AS cate2 ON cate1.parent_category_id = cate2....
WHERE
goods_id = 123
my $rs = $self->schema->resultset('Goods')->search(
{ goods_id => 123 },
{
'+select' => [ 'cate1.category_name', 'cate2.cat...
'+as' => [ 'category_name', 'parent_ca...
from => [
{ me => 'goods' },
[ { cate1 => 'category' }, { 'me.category_id...
[ { cate2 => 'category' }, { 'cate2.category...
]
}
);
$row = $rs->first;
print $row->get_column('category_name');
$row->get_column('category_name')でなく$row->category_nam...
*** PREFETCH [#r9685ba3]
$rs->search(undef,{prefetch => 'user', join => 'user'});
ジョインするテーブルをjoin=>'TABLE名'で明示する事。
終了行:
* 自己結合 [#c9b292e5]
*** 自己結合1 [#c1729252]
SELECT XXX FROM category me JOIN category cate2 ON cate1...
$rs = $rs->search({},
{
from => [
{ me => 'category' },
[ { cate2 => 'category' }, { 'me.parent_cate...
]
}
);
*** 自己結合2 [#f2db902b]
SELECT
goods.*,
cate1.category_name AS category_name, cate2.category_n...
FROM
goods
JOIN
category cate1 ON goods.category_id = cate1.category_id
JOIN
category AS cate2 ON cate1.parent_category_id = cate2....
WHERE
goods_id = 123
my $rs = $self->schema->resultset('Goods')->search(
{ goods_id => 123 },
{
'+select' => [ 'cate1.category_name', 'cate2.cat...
'+as' => [ 'category_name', 'parent_ca...
from => [
{ me => 'goods' },
[ { cate1 => 'category' }, { 'me.category_id...
[ { cate2 => 'category' }, { 'cate2.category...
]
}
);
$row = $rs->first;
print $row->get_column('category_name');
$row->get_column('category_name')でなく$row->category_nam...
*** PREFETCH [#r9685ba3]
$rs->search(undef,{prefetch => 'user', join => 'user'});
ジョインするテーブルをjoin=>'TABLE名'で明示する事。
ページ名: