2014-09-30 76 views
0

我希望將一個查詢結果(「A」)作爲數組分配給另一個查詢(「B」)的自定義變量。我意識到數組變量不允許在SQL中,所以我希望在JSON中做到這一點。 下面是例子:如何將數組賦值給sql查詢的變量

Query Result A: 
Staff ID | Mariage status | Kids Details | 
I022144 | yes   |    | 
I062541 | yes   |    | 
I322411 | yes   |    | 
I445211 | no    |    | 
D235544 | yes   |    | 

Query Result B: 
Staff ID | Kids Name  | Kids Gender | Kids Age | 
I022144 | Pete   | M   | 3   | 
I022144 | Sarah   | F   | 5   | 
I062541 | Don   | M   | 10   | 
I322411 | Keith   | M   | 9   | 
D235544 | John   | M   | 2   | 
D235544 | Nancy   | F   | 13   | 
D235544 | Don   | M   | 1   | 

預期結果在JSON

Dataset: [ 
    {"Staff ID": I022144, "Mariage status": yes, "Kids Details": [{"Kids Name": Pete, "Kids Gender": M, "Kids Age": 3}, {"Kids Name": Sarah, "Kids Gender": F, "Kids Age": 5}]}, 
    {"Staff ID": I062541, "Mariage status": yes, "Kids Details": [{"Kids Name": Don, "Kids Gender": M, "Kids Age": 10}]}, 
    {"Staff ID": I322411, "Mariage status": yes, "Kids Details": [{"Kids Name": Keith, "Kids Gender": M, "Kids Age": 9}]}, 
    {"Staff ID": I445211, "Mariage status": no, "Kids Details": []}, 
    {"Staff ID": D235544, "Mariage status": yes, "Kids Details": [{"Kids Name": John, "Kids Gender": M, "Kids Age": 2}, {"Kids Name": Nancy, "Kids Gender": F, "Kids Age": 13}, {"Kids Name": Don, "Kids Gender": M, "Kids Age": 1}]} 
] 

感謝您的指導做好。 :)

傢伙

+0

json_encode? http://php.net/manual/it/function.json-encode.php。在A上執行查詢,將它推入數組中,使用json_encode傳遞數組,並且返回的字符串應該是您要查找的內容,如果我有你想做的事情:P – briosheje 2014-09-30 07:42:12

+0

感謝您的快速響應。我的後續問題是,因爲在結果A中將結果B分配給「孩子細節」取決於員工ID。 A.「職員ID」= B.「職員編號」,然後A.「孩子的詳細信息」=> {B.「孩子的名字」,B。「孩子的性別」,B。孩子年齡「}? – Chappy 2014-09-30 07:46:14

+0

我不確定這是否正是你想要做的。此外,我沒有看到你已經嘗試過的任何代碼。我只是一個想法,但如果我已經有了你想做的事情,那麼在這一點上你應該很容易完成你所需要的事情。但是,如果要將值存儲到數據庫中,請注意,json字符串非常大,因此請不要忘記製作正確的表以便正確存儲它們。編輯:另外,顯然,不要忘記**先逃脫**他們) – briosheje 2014-09-30 07:48:51

回答

0
You actualy can use array variables in SQL, You can do this 
DECLARE @TableVariableName TABLE(
IDs VARCHAR(100), 
numbers Int 
); 
Insert into @TableVariableName 
-----Do the select you want it to store it into the new table for example: 
Select IDs,numbers from tbl1 

然後你就可以在另一個查詢中使用此表如下:

Select tbl2.column1, @TableVariableName.IDs, @TableVariableName.numbers from tbl2 
join @TableVariableName ON tbl2.IDs = @TableVariableName.IDs 

你去那裏。希望這可以幫助

+0

謝謝亞歷克斯。不過,看起來你的建議會導致表格變平。我只希望那欄「Kids Details」是一個數組。我認爲briosheje建議更適合。 – Chappy 2014-10-16 03:33:10