MySQL查询给出的结果不正确
我有一张表格MySQL查询给出的结果不正确,mysql,join,self-join,Mysql,Join,Self Join,我有一张表格捐款申请 project_id | instrument_id -------------------------- 1 | 5 1 | 6 我需要检索项目id,该项目id为仪器id=5和仪器id=6,在本例中为1 我想这很简单,但我不知道怎么做 我尝试过许多不同的方法,但没有一种能给我正确的结果 如: SELECT cr.project_id FROM contribution_request as cr WHE
捐款申请
project_id | instrument_id
--------------------------
1 | 5
1 | 6
我需要检索项目id
,该项目id为仪器id=5
和仪器id=6
,在本例中为1
我想这很简单,但我不知道怎么做
我尝试过许多不同的方法,但没有一种能给我正确的结果
如:
SELECT cr.project_id
FROM contribution_request as cr
WHERE cr.project_id = 1
AND cr.project_id = 6
或此
select p.id, cr.instrument_id from contribution_request as cr, project as p
where p.id = cr.project_id
and cr.instrument_id = 1
and cr.instrument_id = 6
请帮忙 :
使用或代替AND。列instrument_id不会有两个值
如果需要检查(5,6,7,8,…)中使用的更多值请从my_表中选择项目id,其中仪表id(5,6)按项目id分组,计数(*)为2@草莓:你的解决方案不起作用`函数instrument\u id不存在``Typo:instrument\u id在(5,6)@Lorenzo中,在你的问题中,它只是关于两个仪器。您是否也需要解决未知仪器数量不限的问题?您是在寻找带命名工具的静态查询还是动态查询?它应该是cr1.project\u id=5@MartinK是的,你是对的,我纠正了它。我只是不理解一个项目id如何可以同时拥有两个值……也许这可以用
来解决,其中cr1.project\u id=5或cr2.project\u id=6
…飞走了…我坚持…应该是或,而不是和。。。“我说得对吗?”罗伯特·罗萨斯,不,你说得不对。看看我的例子,它展示了它是如何工作的。
SELECT cr1.project_id
FROM contribution_request as cr1
INNER JOIN contribution_request as cr2 ON cr1.project_id = cr2.project_id
WHERE cr1.instrument_id = 5 AND cr2.instrument_id = 6