Sql

2010-07-07 18 views
6

sql içinde UNIONS kullanırken genel bir WHERE yan tümcesi kullanarak UNCHERS kullanarak MATCH() AGAINST() sonuçları birkaç tabloyu döndürmeye çalışıyorum, tek sorun, bazı satırlar 0'ın alaka düzeyini döndürür, bunların dışında bırakmak istiyorum. sendikalar sonraSql

Aşağıda

benim SQL biraz

SELECT pages.content AS search, page_info.url AS link, MATCH(pages.content) AGAINST('Wales') as relevance 
FROM page_content 
LEFT JOIN pages ON (page_info.page = pages.id) 

UNION 

SELECT products_real.name AS search, products_real.event AS link, MATCH(products_real.name, products_real.description) AGAINST ('Wales') as relevance 
FROM product_real 

ORDER BY relevance DESC 

yüzden

TARAFINDAN NEREDE alaka> 0 SİPARİŞ önce ekleyebilir zaten var olan 'alaka> 0' kullanmak için bir yol yoktur

çok teşekkürler

cevap

4

türetilmiş tablo

SELECT * 
FROM 
    (SELECT 
    pages.content AS search, 
    page_info.url AS link, 
    MATCH(pages.content) AGAINST('Wales') as relevance 
    FROM page_content 
    LEFT JOIN pages ON (page_info.page = pages.id) 
    UNION 
    SELECT 
    products_real.name AS search, 
    products_real.event AS link, 
    MATCH(products_real.name, products_real.description) AGAINST ('Wales') as relevance 
    FROM product_real) myQuery 
Where myQuery.relevance <> 0 
ORDER BY myQuery.relevance DESC 
kullanmayı deneyin sen i ekleyebilirsiniz
+0

Hum. Orijinal sorusunun 'alaka düzeyinin 0 olduğu durumları hariç tutması', ancak maddenin '> 0' dediği psuedo olduğu belirtilmelidir. Sadece bir not –

+0

Mükemmel çalıştı, çok teşekkür ederim – wiggles

2

Her sorguya veya sonuna kadar t:

SELECT pages.content AS search, page_info.url AS link, MATCH(pages.content) AGAINST('Wales') as relevance 
FROM page_content 
LEFT JOIN pages ON (page_info.page = pages.id) 
WHERE relevance > 0 

UNION 

SELECT products_real.name AS search, products_real.event AS link, MATCH(products_real.name, products_real.description) AGAINST ('Wales') as relevance 
FROM product_real 
WHERE relevance > 0 

ORDER BY relevance DESC 



SELECT search, relevance FROM 
(

SELECT pages.content AS search, page_info.url AS link, MATCH(pages.content) AGAINST('Wales') as relevance 
FROM page_content 
LEFT JOIN pages ON (page_info.page = pages.id) 

UNION 

SELECT products_real.name AS search, products_real.event AS link, MATCH(products_real.name, products_real.description) AGAINST ('Wales') as relevance 
FROM product_real 
) D 
WHERE relevance > 0 
ORDER BY relevance DESC