YanoRyuichi.com/
Wiki
Blog
GitHub
Sandbox
開始行:
* 複雑なSQL3 サブクエリ [#x1e258b6]
** 前提 [#te3629a1]
カテゴリは上位のカテゴリとサブカテゴリが存在する。例えば...
** categoryテーブル [#y519d72b]
以下のようなカラムを持つ。category_idとparent_category_id...
- category_id (int)(PK)
- category_name (text)
- parent_category_id (int)
** 取得したいデータ [#me7535cc]
以上の条件で、あるカテゴリ(ここではカテゴリID20)と同じペ...
例:
,カテゴリID,カテゴリ名
,20,物理
,21,化学
,22,地学
,23,生物
** SQL [#a3f12f4d]
SQLは以下の通り。
select category_id, category_name
from category
where
parent_category_id =
(select parent_category_id from category
where category_id = 20);
order by category_id
** DBIC [#zc4bacb4]
DBICのコードは以下の通り。
my $subq = sprintf " = (select parent_category_id from c...
20;
$c_rs = $c_rs->search({
parent_category_id => ?$subq
});
$c_rs = $c_rs->search_literal(
'category_id <> parent_category_id',
{order_by => 'category_id'});
** ポイント [#f643a0bb]
- サブクエリ部分は別に変数に代入し、リファレンスを渡す。
終了行:
* 複雑なSQL3 サブクエリ [#x1e258b6]
** 前提 [#te3629a1]
カテゴリは上位のカテゴリとサブカテゴリが存在する。例えば...
** categoryテーブル [#y519d72b]
以下のようなカラムを持つ。category_idとparent_category_id...
- category_id (int)(PK)
- category_name (text)
- parent_category_id (int)
** 取得したいデータ [#me7535cc]
以上の条件で、あるカテゴリ(ここではカテゴリID20)と同じペ...
例:
,カテゴリID,カテゴリ名
,20,物理
,21,化学
,22,地学
,23,生物
** SQL [#a3f12f4d]
SQLは以下の通り。
select category_id, category_name
from category
where
parent_category_id =
(select parent_category_id from category
where category_id = 20);
order by category_id
** DBIC [#zc4bacb4]
DBICのコードは以下の通り。
my $subq = sprintf " = (select parent_category_id from c...
20;
$c_rs = $c_rs->search({
parent_category_id => ?$subq
});
$c_rs = $c_rs->search_literal(
'category_id <> parent_category_id',
{order_by => 'category_id'});
** ポイント [#f643a0bb]
- サブクエリ部分は別に変数に代入し、リファレンスを渡す。
ページ名: