Php 对不同的表进行计数并更新另一个表,其中postnr=";“计数不同”;
表1:Php 对不同的表进行计数并更新另一个表,其中postnr=";“计数不同”;,php,mysql,pdo,Php,Mysql,Pdo,表1: postnr ------ 11111 11111 11111 22222 33333 33333 表2: postnr count -------- ------- 11111 ? 22222 ? 33333 ? 44444 ? 我想做的是用表1中每个postnr的计数更新表2 因此,在本例中,11111的计数为3,22222的计数为
postnr
------
11111
11111
11111
22222
33333
33333
表2:
postnr count
-------- -------
11111 ?
22222 ?
33333 ?
44444 ?
我想做的是用表1中每个postnr的计数更新表2
因此,在本例中,11111的计数为3,22222的计数为1,33333的计数为2
这些表驻留在不同的数据库中,这是我徒劳的尝试,但它不会在表2中生成任何计数
$pdo1 = new PDO('mysql:host='.DB_SERVER.';dbname='.DB_NAME_PROFILDATA, DB_USER, DB_PASS);
$pdo1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$pdo2 = new PDO('mysql:host='.DB_SERVER.';dbname='.DB_NAME, DB_USER, DB_PASS);
$pdo2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
try {
foreach ($pdo1->query("SELECT
count(DISTINCT postnr) as pstnr,
postnr as postnumret
FROM XXX") as $row) {
$count = $row['pstnr'];
$postnumret = $row['postnumret'];
$result = $pdo2->prepare("UPDATE YYY
SET a1_ant = '$count'
WHERE postnummer = $postnumret");
$result->execute();
}
}
catch(PDOException $e) {
echo $e->getMessage();
}
我使用的是php、pdo和mysql。您可能只需通过查询就可以做到这一点,无需写下代码。 看看我为你做的
select val, count(val) from t1 group by val;
insert into t2
select val as vals, count(val) as int from t1 group by val;
select * from t2;
不确定是否正在查找查询。但使用下面的sql查询,您也可以这样做
update tab2 set
count =
(select count(postnr)
from table1
where postnr = tab2.postnr
)
这里有小提琴演示吗