回答編集履歴
6
追記
answer
CHANGED
@@ -7,8 +7,15 @@
|
|
7
7
|
left join wp_usermeta b on a.EmpID=b.EmpID and b.meta_key='FullName'
|
8
8
|
left join wp_usermeta c on a.EmpID=c.EmpID and c.meta_key = 'Age'
|
9
9
|
```
|
10
|
+
サブクエリーだと
|
11
|
+
```SQL
|
12
|
+
select a.EmpID
|
13
|
+
, (select meta_value from wp_usermeta where EmpID=a.EmpID and meta_key='FullName')as FullName
|
14
|
+
, (select meta_value from wp_usermeta where EmpID=a.EmpID and meta_key='Age')as Age
|
15
|
+
from (select EmpID from wp_usermeta group by EmpID) a
|
16
|
+
```
|
10
17
|
だけど、そんな構成になっているなら、設計者に聞くともっと効率の良い取り出し方が用意されているような気がします。
|
11
|
-
軸(`EmpID`)
|
18
|
+
軸(`EmpID`)はトランザクションに求めているテーブルに見えますけど。
|
12
19
|
|
13
20
|
推測だけど、EmpIDを持ったトランザクションをtrnテーブルとしたとすると、
|
14
21
|
```SQL
|
5
訂正
answer
CHANGED
@@ -1,13 +1,11 @@
|
|
1
|
-
全外部結合(Full join )じゃないかな?
|
1
|
+
~~全外部結合(Full join )じゃないかな?~~
|
2
|
+
MySQLはFull join 使えませんでしたすみません。
|
3
|
+
なので、Full join が使えない場合は以下のようになります。
|
2
4
|
```SQL
|
5
|
+
select a.EmpID, b.meta_value as FullName, c.meta_value as Age
|
3
|
-
|
6
|
+
from (select EmpID from wp_usermeta group by EmpID) a
|
4
|
-
,a."FullName", b."Age"
|
5
|
-
from (
|
6
|
-
|
7
|
+
left join wp_usermeta b on a.EmpID=b.EmpID and b.meta_key='FullName'
|
7
|
-
) as a full join (
|
8
|
-
|
8
|
+
left join wp_usermeta c on a.EmpID=c.EmpID and c.meta_key = 'Age'
|
9
|
-
) as b
|
10
|
-
on a.`EmpID`=b.`EmpID`
|
11
9
|
```
|
12
10
|
だけど、そんな構成になっているなら、設計者に聞くともっと効率の良い取り出し方が用意されているような気がします。
|
13
11
|
軸(`EmpID`)さえあれば、サブクエリーなどで取り出すテーブルに見えますけど。
|
4
推敲
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
on a.`EmpID`=b.`EmpID`
|
11
11
|
```
|
12
12
|
だけど、そんな構成になっているなら、設計者に聞くともっと効率の良い取り出し方が用意されているような気がします。
|
13
|
-
軸(`EmpID`)さえあれば、サブクエリーで取り出すテーブルに見えますけど。
|
13
|
+
軸(`EmpID`)さえあれば、サブクエリーなどで取り出すテーブルに見えますけど。
|
14
14
|
|
15
15
|
推測だけど、EmpIDを持ったトランザクションをtrnテーブルとしたとすると、
|
16
16
|
```SQL
|
3
追記
answer
CHANGED
@@ -10,4 +10,15 @@
|
|
10
10
|
on a.`EmpID`=b.`EmpID`
|
11
11
|
```
|
12
12
|
だけど、そんな構成になっているなら、設計者に聞くともっと効率の良い取り出し方が用意されているような気がします。
|
13
|
-
軸(`EmpID`)さえあれば、サブクエリーで取り出すテーブルに見えますけど。
|
13
|
+
軸(`EmpID`)さえあれば、サブクエリーで取り出すテーブルに見えますけど。
|
14
|
+
|
15
|
+
推測だけど、EmpIDを持ったトランザクションをtrnテーブルとしたとすると、
|
16
|
+
```SQL
|
17
|
+
select trn.EmpID, m_name.meta_value as FullName, m_age.meta_value as Age
|
18
|
+
from trn
|
19
|
+
left join wp_usermeta as m_name
|
20
|
+
on trn.EmpID=m_name.EmpID and m_name.meta_key='FullName'
|
21
|
+
left join wp_usermeta as m_age
|
22
|
+
on trn.EmpID=m_age.EmpID and m_age.meta_key='Age'
|
23
|
+
```
|
24
|
+
じゃないかな。
|
2
元に戻した
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
全外部結合(Full join )じゃないかな?
|
2
2
|
```SQL
|
3
3
|
select coalesce(a.`EmpID`, b`EmpID`)
|
4
|
-
,a.
|
4
|
+
,a."FullName", b."Age"
|
5
5
|
from (
|
6
6
|
SELECT `EmpID`,meta_value as "FullName" FROM `wp_usermeta` where `meta_key`="FullName"
|
7
7
|
) as a full join (
|
1
修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
全外部結合(Full join )じゃないかな?
|
2
2
|
```SQL
|
3
3
|
select coalesce(a.`EmpID`, b`EmpID`)
|
4
|
-
,a.
|
4
|
+
,a.meta_value as FullName, b.meta_value as Age
|
5
5
|
from (
|
6
6
|
SELECT `EmpID`,meta_value as "FullName" FROM `wp_usermeta` where `meta_key`="FullName"
|
7
7
|
) as a full join (
|