您好,我正在尋求幫助,我的查詢當前運行沒有錯誤,但不顯示數據,因爲我也需要它。我的表存儲電話號碼,相關字段是id,phonetype和phonenumber。如果將行選擇爲多列
運行時,雖然它只顯示最後一個數字,但它會按預期方式返回列id
,HOME PHONE
,WORK PHONE
,CELL PHONE
。假設在給定行中有家庭電話和工作電話號碼...我只在該工作電話的WORK PHONE列中獲取數據。如果連續存在家庭電話,工作電話和手機...我只能在CELL PHONE列中獲取數據。
我需要在phonetype類型的唯一列中給定id的所有電子形式的一行。我希望是有道理的,如果沒有查詢應該給你一個想法是什麼即時尋找...感謝
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
如果你有一個類型的話,如何能有一個工作電話和一個GIVEN行的手機?如果類型='WORK PHONE',它又怎麼可能是'CELL PHONE'?看看這個查詢並想象你的數據庫,我會假設每行生成的行將填充一列,其他兩列空白。 – 2013-04-03 22:38:25
我看到我在哪裏創建混亂,表中有每行人的多行phonetypes。所以Jim有自己的工作,家庭和單元號碼。 – user2242491 2013-04-03 22:41:31
沒有混淆,這正是我對它的理解,但是隨後你將得到Jim的多行結果,並且每行仍然只有一個值填充。我認爲你希望合併這些個體行成單行結果,你可以用subseconds按照d'alar'cop的回答做 – 2013-04-03 22:48:02