gpt4 book ai didi

php - 从第二个和第三个表中获取第一个表中匹配值的值

转载 作者:行者123 更新时间:2023-11-29 08:14:55 24 4
gpt4 key购买 nike

我是一名 jQuery 开发人员,但我不太清楚如何从表中检索数据。我只是想学习一下。

我有一个特殊情况需要处理。考虑三个表

tb1 
-----------------------------------------------
pid fname lname cid eid
12 jo mo 16345 2345
13 ko ro 16324 2435

tb2
-----------------------------------------------
cid cname
16345 amazed
16324 bored

tb3
------------------------------------------------
eid ename
2345 nolo
21345 johny

我想检索匹配 pid 值的数据。说,

select * from tb1 where pid = 12 

它返回我pid, fname, lname, cid, eid

cid值为 16345,而是数字。我想要那个cidtb2 匹配的值并获取 cname 列值 amazedeid 相同那就是ename : nolo我希望这些数字与 tb2 和 tb3 匹配并获取它们的字符串值。

我可以使用 3 个 MySQL 查询来完成

这是我尝试过的

 $result = mysql_query("select * from tb1 where pid = 12");
$row = mysql_fetch_array($result,MYSQL_ASSOC);
$cname = mysql_query("select cname from tb2 where cid = '$row[cid]'");
$x = mysql_fetch_array($cname,MYSQL_ASSOC);
$cname = mysql_query("select ename from tb3 where eid = '$row[eid]'");
$y = mysql_fetch_array($cname,MYSQL_ASSOC);

但是我感觉代码不太理想。我想一定有一种方法可以在单个查询中检索,但我不确定它一定是什么。也许是连接或子查询。

最佳答案

在 3 个表上使用联接

SELECT tb1.*, tb2.cname, tb3.ename from tb1
JOIN tb2 ON tb1.cid = tb2.cid
JOIN tb3 ON tb1.eid = tb3.eid
WHERE tb1.pid = 12

希望这有帮助

关于php - 从第二个和第三个表中获取第一个表中匹配值的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20825553/

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