我想知道具有相同类型连接的get列名的查询与其类别也相同的其他表列名称。我试过但找不到答案。
这是我的查询
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 :(得分: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
答案 1 :(得分: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;