2011-10-20 129 views
1

我有兩個表,ab。兩個表都包含一個config_data列。 a在另一個數據庫中,而b在另一個數據庫中。從兩個表中選擇值

我想選擇a不在b值,以及該ba值。

這是我當前的查詢:

SELECT b.dim2 
FROM sakthi_a1.`config_data` AS a 
JOIN sakthi_a2.`config_data` AS b 
    ON a.dim2<>b.dim2 
GROUP BY b.dim2 

它不工作。我需要一個查詢來解決這個問題。

忘記上述查詢。我知道這是錯的。

我需要根據上面給出的條件從這些表中選擇一個值。可能嗎?

的樣本數據

sakthi_a1.config_data 
id dim1 dim2     config_value 
1 site is_module_page   0 
2 site default_html_header_tpl html_headedr.tpl 
3 site facebook    test 


sakthi_a2.config_data 
id dim1 dim2     config_value 
1 site is_module_page   0 
2 site default_html_header_tpl html_headedr.tpl 
3 site error     Invalid page 
+3

如果我每當我看到'它不工作',沒有錯誤信息就會失去一根頭髮,應該工作,或任何不正確的結果,我會禿頭。到處。 – Bojangles

+1

@JamWaffles:我害怕無處不在:D –

回答

1

什麼類似下面的查詢:

(
    SELECT 
     a.* 
    FROM 
     a 
    WHERE NOT EXISTS(
     SELECT 
      * 
     FROM 
      b 
     WHERE 
      b.dim = a.dim 
    ) 
) 

UNION 

(
    SELECT 
     b.* 
    FROM 
     b 
    WHERE NOT EXISTS(
     SELECT 
      * 
     FROM 
      a 
     WHERE 
      a.dim = b.dim 
    ) 
) 
0

試試這個(在一個不屬於在B行)

SELECT a.* 
FROM sakthi_a1.`config_data` AS a 
LEFT JOIN sakthi_a2.`config_data` AS b 
    ON a.id = b.id 
WHERE b.id IS NULL