MYSQL查询匹配来自两个表的多个值

时间:2014-06-11 18:46:19

标签: mysql sql

我在修复找到"匹配"的MYSQL查询时遇到了问题。在两个关系表之间。例如,如果传入的TABLEA ID是2,那么我想从TABLEB返回所有ID,其中TABLEA VALUES(b和c)都存在于单个TABLEB ID中。希望有道理!在这种情况下,它不会返回任何东西。但是,当传入ID 3时,它将返回13,因为d和e存在于TABLEB中的ID 13行中。任何帮助都非常感谢!

TABLEA

ID | VALUE
1  | a
2  | b
2  | c
3  | d
3  | e


TABLEB

ID | VALUE
10  | a
12  | b
12  | z
13  | d
13  | e
13  | f

2 个答案:

答案 0 :(得分:0)

您可以尝试此查询。

<强> 更新

在MySQL中:

SELECT        tab_b.ID
FROM          TABLEB tab_b  
WHERE         tab_b.VALUE IN (SELECT      TABLEA.VALUE
                              FROM        TABLEA
                              WHERE       TABLEA.ID = 3)

GROUP BY      tab_b.ID
HAVING        COUNT(DISTINCT tab_b.VALUE) = (SELECT      COUNT(TABLEA.VALUE)
                                             FROM        TABLEA
                                             WHERE       TABLEA.ID = 3)

MySQL: - &gt; http://sqlfiddle.com/#!2/b1aba/10

中查看此小提琴

SQL Server: - &gt; http://sqlfiddle.com/#!3/b0d63/3

(您必须将值从2更改为3才能看到所需的结果)

希望这有帮助!!!

答案 1 :(得分:0)

select b.id2
from tableA a
left join tableB b
on a.value = b.value2
where a.id = 2
and id2 is not null

希望这能为你解答

这是小提琴 fiddle http://sqlfiddle.com/#!3/7e4b1/5