2016-10-04 135 views
-1

我想知道查询中获取具有相同类型连接的列名与类别相同的其他表列名的查询。我试过但找不到答案。获取具有相同类型连接的列名与其他类别列表名称相同的列名

这是我的查询

SELECT a.name, ac.name FROM table1 a 
JOIN table2 ac ON a.id = ac.areaId where ac.positionName = 'cm' or a.type = 2; 

详情:

Table1 
------------------------ 
|id | name |type | 
------------------------- 
|1 | a  | 1  | 
|2 | b  | 1  | 
|3 | c  | 2  | 
|4 | d  | 2  | 
------------------------ 

table2 

---------------------------------- 
| name | positionName | areaId | 
---------------------------------- 
|x  | cm   | 2  | 
|y  | pm   | 3  | 
|z  | cm   | 4  | 
|q  | cm   | 1  | 
---------------------------------- 

Result 

------------------------ 
| name | name  | 
------------------------ 
| c  |    | 
| d  | z   | 
------------------------ 
+0

预期的操作是什么? – Backtrack

+0

表格之间的关系是什么? – Zeina

+0

我必须找到没有。类型2的区域名称与其postionName以cm为单位的名称匹配。 – sahil0021

回答

0

请尝试。

SELECT a.name, ac.name from (select * FROM table1 where type = 2) a 
left JOIN (select * from table2 where positionName = 'cm') ac ON a.id = ac.areaId 
0

使用CASE声明。

SELECT a.name, CASE WHEN ac.PositionName='cm' THEN ac.name ELSE '' END Name 
FROM table1 a 
    JOIN table2 ac ON a.id = ac.areaId 
WHERE a.[type] = 2; 
相关问题