我有一个客户和员工表:
Customers
.account_no
.zipcode
-----------------------
account_no | zipcode
-----------------------
1111000100 | 12345
1222000100 | 25678
1333000100 | 47890
1444000100 | 50000
1555000100 | 53456
1666000100 | 63987
Employees
.id_e
.zipcode_a
.zipcode_b
.card_id
---------------------------------------------
id_e | zipcode_a | zipcode_b | card_id
---------------------------------------------
1 | 10000 | 64000 | 1011
2 | 10000 | 54000 | 1002
3 | 50000 | 64000 | 1003
假设我有6位客户,3位员工;查询结果如下:
---------------------------------
account_no | zipcode | id_e
---------------------------------
1111000100 | 12345 | 2
1111000100 | 12345 | 1
1222000100 | 25678 | 2
1222000100 | 25678 | 1
1333000100 | 47890 | 2
1333000100 | 47890 | 1
1444000100 | 50000 | 2
1444000100 | 50000 | 3
1444000100 | 50000 | 1
1555000100 | 53456 | 2
1555000100 | 53456 | 3
1666000100 | 63987 | 3
1666000100 | 63987 | 1
我想将这些客户帐户分配给循环或循环中的每位员工,看起来像这样:
---------------------------------
account_no | zipcode | id_e
---------------------------------
1111000100 | 12345 | 2
1222000100 | 25678 | 1
1333000100 | 47890 | 2
1444000100 | 50000 | 1
1555000100 | 53456 | 3
1666000100 | 63987 | 1
我一直在尝试使用通常的循环,但结果是随机的,不可取。
任何想法,人?
答案 0 :(得分:0)
您可以创建一个数组并覆盖之前的键以使其成为所以每个邮政编码只加载最后一个id_e来获取它,例如:
如果使用$ myarray = array()创建数组; 并在您的查询中,当您将数据库中的值导入您的数组...我会给你的代码,但我不知道你是如何导入它的;如果你表明我可以帮你正确格式化它的情况。
然后,您可以覆盖重复的zipcodes案例,并且只使用相同的zipcode获取最后一个id_e。 foreach($ myarray as $ zipcode => $ id_e){ $ myarray [$ zipcode] = $ id_e; }
另外我假设你当前是,但要确保你的mysql查询在其末尾包含“ORDER BY id_e”。