Php 如何将数组分配给sql查询的变量

Php 如何将数组分配给sql查询的变量,php,mysql,sql,arrays,json,Php,Mysql,Sql,Arrays,Json,我希望将查询结果(“a”)作为数组分配到另一个查询(“B”)的自定义变量中。我意识到sql中不允许使用数组变量,所以我希望在JSON中使用它。 以下是示例: Query Result A: Staff ID | Mariage status | Kids Details | I022144 | yes | | I062541 | yes | | I322411 | yes

我希望将查询结果(“a”)作为数组分配到另一个查询(“B”)的自定义变量中。我意识到sql中不允许使用数组变量,所以我希望在JSON中使用它。 以下是示例:

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}]}
]
感谢您的指导。:)

干裂的

然后,您可以在另一个查询中使用此表,如下所示:

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

好了。希望这对你有所帮助。在上执行查询,将其推入数组,使用json_encode传递数组,返回的字符串应该是您正在寻找的字符串,如果我已经得到了您想要做的:快速响应的PThanks。我的后续问题是,将结果B分配给结果A中的“儿童详细信息”取决于员工ID。我如何添加一个条件来检查当A“员工ID”=B“员工ID”时,A“儿童详细信息”=>{B“儿童姓名”,B“儿童性别”,B“儿童年龄”}?我不确定这是否正是您想要做的。。此外,我还没有看到您尝试过的任何代码。我的想法只是一个想法,但是,如果我有你想做的事情,你现在应该很容易就能完成你需要的事情。但是,如果要将值存储到数据库中,请注意json字符串非常大,因此不要忘记创建一个适当的表以正确存储它们:)。编辑:当然,也别忘了先退出;)谢谢你,亚历克斯。然而,你的建议似乎会导致桌子变平。我只希望“儿童详细信息”列是一个数组。我认为briosheje的建议更合适。
Select tbl2.column1, @TableVariableName.IDs, @TableVariableName.numbers from tbl2
join @TableVariableName ON tbl2.IDs = @TableVariableName.IDs