sql >> Database >  >> RDS >> Mysql

Hoe doe je dit in mysql of rails

Deze SQL retourneert de berichten die beide tags bevatten.

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'
;

Wat betreft het doen via Active record, zou een alternatief zijn om naar elk van de tags te zoeken en vervolgens &de resulterende arrays om de kruising van de twee te krijgen.



  1. MySQL-kolom is ingesteld op NOT NULL maar staat nog steeds NULL-waarden toe

  2. GET_FORMAT() Voorbeelden – MySQL

  3. Wijzigingen in de tijdlijn tellen met MySQL

  4. Grote objecten mogen niet worden gebruikt in de modus voor automatisch vastleggen