gpt4 book ai didi

php - 多对多加入php/mysql

转载 作者:行者123 更新时间:2023-11-29 02:50:16 24 4
gpt4 key购买 nike

我有两个表“Personne”和“email”。一个人可以有多个邮箱,一个邮箱可以关联多个人:

    Personne
+-------------+--------------+
| idPers | int(10) |
| ... | ... |
+-------------+--------------+
email
+-------------+--------------+
| idEmail | int(10) |
| ... | ... |
+-------------+--------------+

然后我在两者之间创建了一座桥梁:

 pers_email
+-------------+--------------+
| id | int(10) |
| idPers | int(10) |
| idEmail | int(10) |
+-------------+--------------+

我想获取与一个人关联的所有电子邮件,我一直在使用这段代码:

$q='SELECT *
from AERA.pers_email , AERA.email
join AERA.email e on e.idEmail = pers_mail.idEmail
where pers_email.idPers = '.$idPers;

$query = $linkpdo->prepare($q);
$query->execute();
$email = $query->fetchAll();

但我无法让它工作,它不断抛出各种模糊的错误,例如:

1054 Unknown column 'pers_mail.idEmail' in 'on clause''

谁能告诉我哪里出错了?谢谢!

最佳答案

你有 pers_mail.idEmail,你应该有 pers_email.idEmail 并且你应该只内部加入一次,你所拥有的将进行交叉加入然后再次加入可能会产生不需要的结果。试试这个

$q='SELECT *
from AERA.pers_email
inner join AERA.email e on e.idEmail = pers_email.idEmail
where pers_email.idPers = '.$idPers;

同样只是将 $idPers 附加到 sql 可能会使您暴露于 sql 注入(inject)。

关于php - 多对多加入php/mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36722680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com