PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie kann ich mit einer abgeleiteten Tabelle verbinden?

Der Autor der Frage muss sich über die grundlegende Verwendung von Rails und ActiveRecord informieren, bevor er in SQL einsteigt. Sie müssen verstehen, wie Activerecord Ihre Daten modelliert und wie man sie verwendet. Finden Sie zuerst heraus, was Sie in allgemeiner Sprache tun möchten, und sehen Sie dann, wie Sie das Vorhandene dafür verwenden können.

Rails kennt die Struktur Ihrer @temp-Tabelle nicht. Es hat nur eine Ergebnismenge und soweit ich weiß, baut AREL keine Logik aus der Ergebnismenge auf. Es baut aus Schemas auf, die es für aktive Datensatzmodelle zieht.

Sie können aus diesen Daten keine Ansicht erstellen, daher besteht Ihre einzige Möglichkeit darin, die standardmäßigen Join-Optionen mit ActiveRecord-Klassen zu verwenden oder benutzerdefiniertes SQL zu erstellen.

In Rails 3 ist die relationale ActiveRecord-Algebra sehr fortgeschritten und hat Abfragen sehr einfach gemacht.

Comment.order("#{Comment.table_name}.created_at desc').limit(5).joins(:posts).order("#{Post.table_name} created_at desc")