2011-06-14 12 views
8

Hazırda belgelerine okuyordum üzerine katılır ama aşağıdakileri nasıl açıklıyor şey bulamadım.hazırda - HQL birçok maddeler

SELECT {msg.*}, {cmd.*} 
FROM Schema.Messages AS msg 
    LEFT OUTER JOIN schema.send_commands AS cmd 
    ON cmd.message_key = msg.unique_key 
    AND (lower(cmd.status) IN (lower('failed'))) 
WHERE msg.sequence_received < 10"; 

yaşıyorum mainissue Ben SOL DIŞ iki maddelerini JOIN sahibi olamamak olduğum:

ben HQL dönüştürmek çalışıyorum aşağıdaki SQL kodu var. HQL beni ON cmd.message_key = msg.unique_key olmasını sağlar, ama nasıl AND clause 2?

cevap

15

Fazladan with anahtar kelimeyi, böyle bir şey kullanarak birleştirme koşullarını ekleyebilir eklerim (eşlemenizde bağlıdır):

SELECT m, c 
FROM Message m LEFT JOIN m.commands c WITH (lower(c.status) = 'failed') 
WHERE m.sequenceReceived < 10 

bakın Ayrıca:

+0

teşekkürler. Bu çalıştı. Aynı zamanda iki argüman olarak çalışacak: 'WITH (alt (c.status) = 'başarısız') VE (c.dateReceived iliaden

+0

@iliaden: Evet, işe yaramalı. – axtavt