2013年1月12日土曜日

Djangoで、データベーステーブルのLEFT JOIN

Django(1.4.2)で、データベーステーブルのLEFT JOINです。どうやって実現するのだろうと、いろいろなサイトを調べて回ったのですが、クエリセットAPIのextraを利用することで、うまいことデータを取得できました。しかし、「データベースエンジン間の可搬性がなく、DRY則の侵犯でもあるため、可能な限り、使わないようにして下さい」と記されています。確かに、直接ソース内にSQL文を書き込むことになるので、応急措置的な使い方になるのかもしれません。設計自体を見なおした方がいいのかも?

Blog.objects.extra(
    select={
        'entry_pic': 'SELECT pic FROM blog_pic WHERE blog_pic.blog_id = blog_blog.id'
    },
)


参考サイト

0 件のコメント:

コメントを投稿