2010-11-18 13 views
1

Böyle bir sorgu şey var (hayır, benim tablolar ve alanlar bu isimler tarafından çağrılan değildir, ancak yapı aynıdır) - Tamam çalışırSorgumdan neden seçemiyorum?

SELECT table1.id, table2.id, table1.phone1 
FROM table1 LEFT OUTER JOIN 
    table3 ON table3.id = table1.id LEFT OUTER JOIN 
    table2 ON table3.id2 = table2.id  
    WHERE table1.phone1 IS NOT NULL AND LTRIM(RTRIM(table1.phone1)) <> '' 

UNION 

SELECT table1.id, table2.id, table1.phone2 
FROM table1 LEFT OUTER JOIN 
    table3 ON table3.id = table1.id LEFT OUTER JOIN 
    table2 ON table3.id2 = table2.id  
WHERE table1.phone2 IS NOT NULL AND LTRIM(RTRIM(table1.phone2)) <> '' 

UNION 

SELECT table1.id, table2.id, table2.phone 
FROM table1 LEFT OUTER JOIN 
    table3 ON table3.id = table1.id LEFT OUTER JOIN 
    table2 ON table3.id2 = table2.id  
WHERE table2.phone IS NOT NULL AND LTRIM(RTRIM(table2.phone)) <> '' 

. Ondan seçmek çalıştığınızda Fakat, bu nedenle gibi (ben sonunda vs. grup bys ile manipüle etmeye çalışıyorum, ama şimdilik sadece basit bir seçme çalıştı olacaktır):

SELECT * FROM 
    (SELECT table1.id, table2.id, table1.phone1 
    FROM table1 LEFT OUTER JOIN 
     table3 ON table3.id = table1.id LEFT OUTER JOIN 
     table2 ON table3.id2 = table2.id  
     WHERE table1.phone1 IS NOT NULL AND LTRIM(RTRIM(table1.phone1)) <> '' 

    UNION 

    SELECT table1.id, table2.id, table1.phone2 
    FROM table1 LEFT OUTER JOIN 
     table3 ON table3.id = table1.id LEFT OUTER JOIN 
     table2 ON table3.id2 = table2.id  
    WHERE table1.phone2 IS NOT NULL AND LTRIM(RTRIM(table1.phone2)) <> '' 

    UNION 

    SELECT table1.id, table2.id, table2.phone 
    FROM table1 LEFT OUTER JOIN 
     table3 ON table3.id = table1.id LEFT OUTER JOIN 
     table2 ON table3.id2 = table2.id  
    WHERE table2.phone IS NOT NULL AND LTRIM(RTRIM(table2.phone)) <> '') 

hatayı alıyorum:

Incorrect syntax near ')'. 

Neyi yanlış yapıyorum?

cevap

8

Alt seçime ad vermeyi kaçırdınız. ...) sub_query_name gibi bir şeyle kapatın.

+0

+1: Sabah olduğunu söyleyebilirim, ona baktığımda bunu düşünmedim. – Powerlord

+0

Çok teşekkürler! Bunu unuttuğum bir şey olduğunu biliyordum ... şimdi çalışıyor :) – froadie

+0

+1 önemsiz ama hızlı bul! – Konerak