我想找到所有基于v_id 的常见文件
我有三个桌子 我尝试过的查询如下 我想要作为file_X的结果,因为我的目标是基于v_id查找通用文件
但是使用上面的查询,我得到的是file_X,file_W 预期输出 detail
----------------------------
|d_id |v_id |d_name
|--------|--------|---------
|1 |1 |detail_A
|2 |1 |detail_B
|3 |2 |detail_C
file
--------------------
|f_id |fname
|---------|---------
|1 | file_W
|2 | file_X
|3 | file_Y
|4 | file_Z
mapping
---------------------------------
|m_id | v_id |d_id |f_id
|-------|---------|--------|-----
|1 | 1 |1 |1
|2 | 1 |1 |2
|3 | 1 |2 |1
|4 | 1 |2 |3
|5 | 2 |3 |2
|6 | 2 |3 |4
SELECT f.f_id, f.fname
FROM mapping AS m
INNER JOIN detail AS d ON d.d_id=m.d_id
INNER JOIN file AS f ON m.f_id=f.f_id
WHERE m.v_id IN ('1','2')
GROUP BY m.f_id
HAVING COUNT(m.f_id) >=2
-----------
|f_id |fname
------|---
|2 |file_X
答案 0 :(得分:2)
您可以简单地计算Class Parent{
Child child;
// setup child somehow
public void callChildMethod(){
child.callMethod();
}
}
的唯一值。因此,如果有两个v_id
值;为了找到两个v_id
值都可用的文件,您可以计算它们的唯一出现次数,它应该是2。
此外,如果v_id
是整数,则可以使用v_id
代替IN (1,2)
。试试:
IN ('1', '2')