Mysql 基于多个条件获取多个2多关系的记录
我使用的是MYSQL数据库,我有下面3个表,其中表1和表2有多对多关系,映射存储在表3中 表1:Mysql 基于多个条件获取多个2多关系的记录,mysql,sql,Mysql,Sql,我使用的是MYSQL数据库,我有下面3个表,其中表1和表2有多对多关系,映射存储在表3中 表1: id key value 1 Application java 2 Application erp 3 Application sap 4 DB mysql 5 DB oracle 6 DB sql 7 DB postg
id key value
1 Application java
2 Application erp
3 Application sap
4 DB mysql
5 DB oracle
6 DB sql
7 DB postgres
表2:
id data type
1 HTML UI
2 JAVA Backend
3 JavaScript UI
4 CSS UI
5 Query DB
6 Procedure DB
7 Function DB
表3(绘图):
Q:我想要基于键和值的结果,它应该返回表2中的公共数据
例如:如果用户通过(key=application,value=java)和(key=db,value=sql)
然后它应该返回以下结果
Key Value Data Type
Application java Procedure db
query db Procedure db
使用连接
select key,value,data,type from table_mapping m join
table1 t1 on m.Table1_id=t1.id
join table2 t2 on m.Table2_id=t2.id
where
(key,value) in ( ('application','java'),
('query','db')
)
你在使用MySQL还是Oracle?`嗨。欢迎来到SO。请看:你试过什么?显示您当前的查询尝试。我正在使用MySQL@ShalabhRajput你查过了吗?对不起,我用错了查询。这是工作,但我没有得到预期的结果。它正在返回包含这两个键值对的所有记录。@ShalabhRajput create dbtable and data我已经在上面的链接中创建了表和数据。@ShalabhRajput链接在哪里
select key,value,data,type from table_mapping m join
table1 t1 on m.Table1_id=t1.id
join table2 t2 on m.Table2_id=t2.id
where
(key,value) in ( ('application','java'),
('query','db')
)