A B C
P_id | name | add P_id | t_id t_id | paper
----------------- -------------- ------------------
1 sam ca 1 1 1 asdxa
2 john de 2 1 2 dgfv
3 sam jk 3 2 3 decgf
4 sam ca 4 3 4 ergvtr
现在,我可以轻松地按名称搜索表A组中的名称“ sam ”,添加。它显示了我的结果,
sam ca
sam jk
我正在使用php和mysql。我想在此做一些额外的任务: -
- >行的总计数。就像
sam ca 2
sam jk 1
(我不是在这里接受P_id ......只关注名称并添加。)
- >在 2和1 (上方)上建立链接。所以,如果我点击它。它应该在表C 的另一个html页面上显示相关论文。 例如:如果我点击 2 ...那么它应该显示 asdxa和decgf 。
答案 0 :(得分:1)
- >行的总计数。就像
SELECT `name`, `add`, count(`add`) FROM `A` WHERE (`name` = 'sam') GROUP BY `add`;
对于链接,您只需链接到具有该ID的页面,并让您的php脚本从C
表中的给定ID获取数据。
在搜索名称时选择所有匹配的出现次数:
SELECT `A`.`name` AS name, `A`.`P_id` AS aid, `C`.`t_id` AS cid, `C`.`paper` AS paper
FROM `A` , `C`
WHERE (
`A`.`name` = 'sam'
)
AND (
`A`.`P_id` = `C`.`t_id`
)
结果:
name aid cid paper
sam 1 1 qwertyui
sam 3 3 zxcvbn
sam 4 4 uytrewq
sam 5 5 hfdsa
这与我在本地环境中所做的测试表相匹配
答案 1 :(得分:0)
尝试用于第一项任务
$pdo = new PDO(....);
$result = $pdo->query('SELECT name, add, count(*) from table where name='sam' group by add;')->fetchAll();
if ($result) {
foreach($result as $row) {
......
}
}
//second
$sql = 'select paper from tableA a inner join TableB b on a.P_id=b.P_id inner join Tablec c inner join b.t_id = c.t_id where a.p_id=2';
//重复以前的陈述