J'ai une requête à écrire c'est un peu trop compliqué pour moi de comprendre. L'aide serait appréciée. Ma table est, en substance:Requête de doctrine semi-compliquée
Table: Foo
Columns: id
timestamp
bar1
bar2
bar3
Bar1, bar2 et bar3 ne sont pas uniques pour chaque enregistrement. En fait, la combinaison des 3 relie spécifiquement plusieurs enregistrements. Par exemple:
0 | 2011-01-01 00:01:01 | 100 | 5 | 'Hello'
1 | 2011-01-01 12:12:00 | 100 | 5 | 'Hello'
2 | 2011-01-01 07:43:00 | 101 | 8 | 'Monkey'
3 | 2011-01-01 17:46:08 | 102 | 9 | 'Cat'
4 | 2011-01-01 23:15:00 | 100 | 5 | 'Hello'
5 | 2011-01-01 10:00:00 | 100 | 6 | 'Goodbye'
Enregistrements 0, 1 et 4 sont liés tandis que 2, 3 et 5 sont uniques.
Dans cet esprit, je voudrais trouver tous les enregistrements bar1 == 100, bar2 == 5 et bar3 == « Bonjour », SI tous les enregistrements du groupe ont un horodatage < = l'heure actuelle OU l'un des enregistrements du groupe a un horodatage < = à l'heure actuelle - 30 minutes.
J'espère que cela a du sens. Si ce n'est pas le cas, faites le moi savoir et je ferai de mon mieux pour clarifier.
Modifier: J'espérais que d'avoir juste la barre serait suffisante pour un exemple, mais en réalité, ma table réelle a plusieurs colonnes qui doivent correspondre pour indiquer un dossier est lié. J'ai mis à jour l'exemple en conséquence.
Je ne connais pas vos données, mais il semble que {bar1, bar2, bar3} forment un groupe qui pourrait être "normalisé" dans une table séparée. – wildplasser