Mysql 如何高效地从多个表中获取数据?

Mysql 如何高效地从多个表中获取数据?,mysql,sql,database,Mysql,Sql,Database,我希望使用单个查询从所有表中获取数据。如何有效地从该表中获取数据 以下是我的预期产出: 我已经试过这样做了 select b_id, b_datetime, invoice_id, plan_id, exp_datetime, plan_name, plan_amount, months, s_name, s_url, name amount from tblplanboughts pb,tblplans p , tblshops s , tblusers u where pb.uid=

我希望使用单个查询从所有表中获取数据。如何有效地从该表中获取数据

以下是我的预期产出:

我已经试过这样做了

select b_id,
b_datetime,
invoice_id,
plan_id,
exp_datetime,
plan_name,
plan_amount,
months,
s_name,
s_url,
name
amount 
from tblplanboughts pb,tblplans p , tblshops s , tblusers u 
where pb.uid=u.uid && 
pb.plan_id=p.plan_id && u.uid=s.uid;
简单解决您的问题:

select pb.b_datetime, pb.invoice_id, p.plan_name, p.months, pb.amount, s.s_name, s.s_url, u.name, pb.exp_datetime
from tblplanboughts pb, tblpricingplans p, tblshops s, tblusers u
where pn.b_id=s.b_id and pb.plan_id=p.plan_id and pb.uid=u.uid
或者使用带有join关键字的内部联接

select pb.b_datetime, pb.invoice_id, p.plan_name, p.months, pb.amount, s.s_name, s.s_url, u.name, pb.exp_datetime
from tblplanboughts pb inner join tblpricingplans p on pb.plan_id=p.plan_id
                       inner join tblshops s on pb.b_id=s.b_id
                       inner join tblusers u on pb.uid=u.uid

只需在From子句中使用别名,然后在表之间的关系字段上应用联接:

select pb.*, p.* , s.* , u.*

from tblplanboughts pb, tblpricingplans p, tblshops s, tblusers u

where pn.b_id=s.b_id and pb.plan_id=p.plan_id and pb.uid=u.uid

您还可以在语句中使用
内部联接…而不是在where子句中使用(=)

现在如何创建输出?你试过什么?哪一部分不起作用?Google sql join。@一匹没有名字的马,在MySQL中我们也可以使用…)@一匹没有名字的马,我没有深入的知识,但我试过了,而且成功了!:D除了交叉联接之外,我认为我们应该尽可能不鼓励使用隐式联接。草莓谢谢你的建议。.我尝试了什么就编辑了我的问题,还提到了我卡住的原因。@草莓:即使是交叉联接,我认为使用显式
交叉联接
也更好,因为它记录了你真的打算这么做。