こんにちは、現在エラーなしで実行されているが、必要なデータが表示されないクエリについて支援を求めています。私のテーブルには電話番号が格納されており、関連するフィールドは id、phonetype、および phonenumber です。
実行すると、最後の番号のみが表示されますが、期待どおりに列、、、が返さid
れます。特定の行に自宅の電話番号と勤務先の電話番号があるとします...そのIDの勤務先電話番号列にのみデータを取得します。自宅の電話、勤務先の電話、携帯電話が連続している場合は、CELL PHONE 列のデータのみを取得します。HOME PHONE
WORK PHONE
CELL PHONE
電話の種類ごとに一意の列にある特定の id のすべての電話番号の 1 つの行が必要です。それが理にかなっているといいのですが、そうでない場合は、クエリで何を探しているかがわかると思います...ありがとう
SELECT id,
(IF(phonetype = 'HOME PHONE', phonenumbers.phonenumber, '')) AS 'HOME PHONE',
(IF(phonetype = 'WORK PHONE', phonenumbers.phonenumber, '')) AS 'WORK PHONE',
(IF(phonetype = 'CELL PHONE', phonenumbers.phonenumber, '')) AS 'CELL PHONE'
FROM phonenumbers
GROUP BY id;
クエリしているテーブルは次のようになります
id | name | phonetype | phonenumber
1 | Jim | HOME PHONE | 0000000001
1 | Jim | WORK PHONE | 0000000002
2 | Kim | HOME PHONE | 0000000003
2 | Kim | WORK PHONE | 0000000004
2 | Kim | CELL PHONE | 0000000005
私が探している結果は次のようになります...
id | name | home phone | work phone | cell phone
1 | Jim | 0000000001 | 0000000002 |
2 | Kim | 0000000003 | 0000000004 | 0000000005