उदाहरण के लिए, मैं निम्न तालिका परिभाषाएं हैं:मैं स्लिम में कुल प्रश्न कैसे कर सकता हूं?
object Houses extends Table[Long]("Houses") {
def id = column[Long]("id")
def * = id
}
object Rooms extends Table[(Long, Long)]("Rooms") {
def id = column[Long]("id")
def houseId = column[Long]("houseId")
def size = column[Int]("size")
def * = id ~ houseId ~ size
}
और मैं प्रत्येक घर के लिए सबसे बड़ा कक्ष का चयन करना चाहते।
मैं निम्नलिखित चाल के साथ आया था:
val query = {
(r1, r2) <- Rooms leftJoin Rooms on ((r1,r2) =>
r1.houseId === r2.houseId && r1.size > r2.size
)
if r2.id.isNull
} yield r1
यह मैं क्या जरूरत है, लेकिन, बदसूरत पूरी तरह से पढ़ने योग्य नहीं है, और प्रदर्शन को चोट लगती है। मैंने क्वेरी पर groupBy
का उपयोग करने की कोशिश की, लेकिन ऐसा लगता है कि मैं कुछ मूल अवधारणा को गलत समझ रहा हूं - मुझे सही प्रकार नहीं मिल सकते हैं।
क्या स्लिम में ऐसी कुल क्वेरी करने का कोई बेहतर तरीका है?
धन्यवाद! 'अस्तित्व' वाला संस्करण वास्तव में बहुत तेज है और 30x कम पंक्तियों के माध्यम से चलता है। – Rogach