从第2和第3个表中获取第1个表中匹配值的值

时间:2013-12-29 13:18:34

标签: php mysql

我是一名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,而不是数字。我希望cid值与tb2匹配,并获取amazed的cname列值,并与eid的{​​{1}}相同希望这些数字与tb2和tb3匹配,并获得它们的字符串值。

我可以使用3个MySQL查询来实现它

这就是我尝试过的

ename : nolo

但我觉得代码并不理想。我想必须有一种方法可以在单个查询中检索,但我不确定它必须是什么。也许加入或子查询。

2 个答案:

答案 0 :(得分:1)

在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

希望这有帮助

答案 1 :(得分:1)

试试这个:

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