我需要一个帮助。我有两个表我需要加入两个表并在用户表中显示它们。我正在解释下面的表结构。
db_summary:
id member_id hit_type device_type
1 20 1 IOS
2 12 2 IOS
3 20 3 Android
4 14 4 Android
5 12 3 IOS
6 14 5 IOS
从上表中,hit_type
列值链接到下表的type
列。
db_hit_type:
id name type
1 Page 1
2 Map 2
3 Gallery 3
4 Phone 4
5 Web 5
如果db_summary
表示在第二个表中定义的hit_type=1
,则从page hit
表中。在这里,我需要通过加入并按照member id
对它们进行排序来获取两个表数据,以显示在以下用户的ui表中。
sl no member page Hit Map Hit Gallery Hit Phone Hit WebHit TOTAL
我需要使用db data.suppose为成员标识20
填充上表,其中page hit,Map hit......
的nos数和hit的总数是多少。我需要获取所有数据并将它们排序为每个用户的表结构。请帮助我。
答案 0 :(得分:0)
我不知道您希望如何或何时查看结果数据,但在某些时候,您需要运行一个查询,从db_summary表计算每个用户的每种类型的命中,然后用结果更新用户表数据
你可以这样做:
$stmt = $db->prepare("SELECT * FROM `db_summary` WHERE `member_id` = :member");
$stmt->bindParam(':member', $memberid);
$stmt->execute();
$hit = array(0,0,0,0,0);
while ($row = $stmt->fetch(PDO::ASSOC))
{
++$hit[$row['hit_type']-1];
}
echo 'Type 1 Hits: ', $hit[0];
echo 'Type 2 Hits: ', $hit[1];
echo 'Type 3 Hits: ', $hit[2];
echo 'Type 4 Hits: ', $hit[3];
echo 'Type 5 Hits: ', $hit[4];
如果您需要更新所有成员,可以将所有成员包装成循环遍历每个成员ID的循环。
答案 1 :(得分:0)
使用以下查询获取两个表数据
SELECT * FROM db_summary AS ds,db_hit_type AS dht WHERE ds.hit_type = dht.type GROUP BY ds.member_id
答案 2 :(得分:0)
SELECT dbs.*,dbht.name,dbht.id as dbHitId
FROM db_summary as dbs
LEFT JOIN db_hit_type as dbht
ON dbs.hit_type=dbht.type
ORDER BY dbs.member_id