我在修复找到"匹配"的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
答案 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