键值MySQL表自连接

时间:2018-07-26 21:19:21

标签: mysql database key-value-store

我有一个具有三个表的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);

如果我们有两个以上的条件,查询的样子。

非常感谢您的回答:)

0 个答案:

没有答案