Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 内部连接同一个表中的值_Mysql_Sql_Left Join_Inner Join - Fatal编程技术网

Mysql 内部连接同一个表中的值

Mysql 内部连接同一个表中的值,mysql,sql,left-join,inner-join,Mysql,Sql,Left Join,Inner Join,我的表格有如下条目。其中,对象id将是相同的。我需要获取对象id的另一个值,该值对于该特定对象id具有“HR”/“Infra” -------------------------------------------------- |id | field_id | object_id | value_text ---------------------------------------------------- |182 | 11 | 149

我的表格有如下条目。其中,对象id将是相同的。我需要获取对象id的另一个值,该值对于该特定对象id具有“HR”/“Infra”

--------------------------------------------------
|id     | field_id  | object_id     | value_text
----------------------------------------------------    
|182    |   11      | 149           | HR
|183    |   13      | 149           | Learning Management   
|184    |   11      | 150           | HR 
|185    |   13      | 150           | Compensation & Benefits   
|186    |   11      | 151           | HR 
|187    |   13      | 151           | Leave Management  
|188    |   11      | 152           | HR 
|189    |   13      | 152           | Compensation & Benefits   
|190    |   11      | 153           | Infra 
|191    |   13      | 153           | Hardisk   
|192    |   11      | 154           | Infra 
|193    |   13      | 154           | Software  
|194    |   11      | 155           | Infra
|195    |   13      | 155           | Network   
|196    |   11      | 156           | HR 
|197    |   13      | 156           | Position Management   
|198    |   11      | 139           | HR 
|199    |   13      | 139           | Compensation & Benefits   
|200    |   11      | 157           | Infra 
|201    |   13      | 157           | Network       
查询:

SELECT d.value_text 
FROM dynamic d 
INNER JOIN dynamic dv ON d.object_id = d.object_id AND d.field_id = "13" 
                     AND dv.field_id = "11" AND dv.value_text = "HR"
所需输出:

--------------
| value_text |
--------------
| Learning Management 
| Compensation & Benefits
| Position Management
--------------
| value_text |
--------------
| Network 
| Software
| Hardisk
第二个问题:

SELECT d.value_text 
FROM dynamic d 
INNER JOIN dynamic dv ON d.object_id = d.object_id AND d.field_id = "13" 
                     AND dv.field_id = "11" AND dv.value_text = "Infra"
所需输出:

--------------
| value_text |
--------------
| Learning Management 
| Compensation & Benefits
| Position Management
--------------
| value_text |
--------------
| Network 
| Software
| Hardisk

如何修改查询以获取详细信息

是否要将这两个查询合并

然后你可以这样做:

SELECT d.value_text FROM dynamic d 
INNER JOIN dynamic dv ON d.object_id = d.object_id AND
d.field_id = "13" AND dv.field_id = "11" 
AND (dv._obejct_id = "Infra" OR dv._obejct_id = "HR")

我希望这就是您所需要的。

不确定您想要什么,但请尝试以下方法:

select
      dv.id, dv.field_id, dv.object_id, dv.value_text
from dynamic d
inner join dynamic dv on dv.field_id = 13 and d.object_id = dv.object_id
where d.field_id = 11
and d.value_text = 'HR'
;

select
      dv.id, dv.field_id, dv.object_id, dv.value_text
from dynamic d
inner join dynamic dv on dv.field_id = 13 and d.object_id = dv.object_id
where d.field_id = 11
and d.value_text = 'Infra'
;

不,我将以不同的方式运行查询。那么您希望得到什么样的输出?另一张桌子看起来怎么样?