2016-10-04 9 views
-1

同じ型の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

予想される動作は何ですか? – 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; 
関連する問題