我有一个具有三个表的MySQL数据库,这三个表如下:
DATA_TRANSACTION(ID_TRANSACTION,ID_USER,TRANSACTION_NAME)
DATA_DICT(ID_KEY,NAME_KEY)
DATA_TABLE(ROW_NUMBER,ID_TRANSACTION,KEY,VALUE)
Data_table是一个键值表,所有键都在DATA_DICT中。
DATA_TABLE看起来像这样:
ROW | ID_TRANSACTION | KEY | VALUE
---------------------------------
1 | 154 |Name |Robert
2 | 154 |Power1 |54
3 | 265 |Name |John
4 | 265 |Place |Dallas
我想通过自加入表提取名称为John且power1 = 58的所有ID。
我已经有一个等效的查询,该查询返回相同的结果:
SELECT ID_TRANSACTION FROM DATA_TABLE WHERE KEY='Name' AND VALUE = 'John' AND ID_TRANSACTION IN (SELECT ID_TRANSACTION FROM DATA_TABLE WHERE KEY='POWER 1' AND VALUE= 54);
如果我们有两个以上的条件,查询的样子。
非常感谢您的回答:)