中級プログラマの自宅でPHP ブログ

自宅用ポータルシステム「MyHome Portal」をオープンソースで公開。MyHome Portalの説明とエンハンス情報。

デバッグ用SQL表示サンプル

MyHome Portalでは、あまり複雑なSQL文を使っていません。

MyHome Portalで使っている一番複雑なSQL文をデバッグSQL表示機能でプリントしたサンプルは以下です。

これは、「ユーザ一覧」で実行しているSQLです。

select m_account.*, left(r_permit_type_1.c_permit_type,2) as public_permit_from, left(r_permit_type_2.c_permit_type,2) as public_permit_to, left(r_permit_type_3.c_permit_type,2) as friends_permit
from (
select *
from m_public
where (m_public.id_account = '10001')
and m_public.c_delete = 0) t2
left outer join r_permit_type r_permit_type_2
on t2.id_permit_type = r_permit_type_2.id_permit_type
right outer join m_account
left outer join (
select *
from m_public
where (m_public.id_permit_id = '10001')
and m_public.c_delete = 0) t1
left outer join r_permit_type r_permit_type_1
on t1.id_permit_type = r_permit_type_1.id_permit_type
on m_account.id_account = t1.id_account
on t2.id_permit_id = m_account.id_account
left outer join (
select *
from v_friends
where (v_friends.id_account = '10001')
and v_friends.c_delete = 0) t3
left outer join r_permit_type r_permit_type_3
on t3.id_permit_type = r_permit_type_3.id_permit_type
on m_account.id_account = t3.id_member_id
where (m_account.c_delete = 0) order by id_account asc