sql >> データベース >  >> RDS >> Mysql

mysqlまたはrailsでこれをどのように行いますか

    このSQLは、両方のタグを含む投稿を返します。

    select 
      p.* 
    from 
      posts p
      ,asset_tags atg1
      ,asset_tags atg2
      ,tags t1
      ,tags t2
    where
      p.id = atg1.post_id
    and t1.id = atg1.tag_id
    and t1.tag = 'MySQL' 
    and p.id = atg2.post_id
    and t2.id = atg2.tag_id
    and t2.tag = 'Rails'
    ;
    

    Active Recordを介してそれを行う場合、別の方法は、各タグをクエリしてから、結果の配列をクエリして、2つの交差を取得することです。



    1. SQL ORDER BY

    2. MySQL-WHERE句でCOUNT(*)を使用

    3. 1年前から現在までのすべてのレコードを選択

    4. PHP / MySQLは行を挿入し、「id」を取得します