从两个表中选择值

时间:2011-10-20 15:05:54

标签: mysql select join

我有两个表,ab。两个表都包含config_data列。 a位于一个数据库中,b位于另一个数据库中。

我想从a中选择不在b中的值,以及b 的值 in a

这是我目前的查询:

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

2 个答案:

答案 0 :(得分: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
    )
)

答案 1 :(得分: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