2014-08-28 2 views
0

Я хочу данные из всей таблицы, используя один запрос. как я могу получить данные из этой таблицы эффективноКак эффективно получать данные из более чем одной таблицы?

this is my database tables

Ниже мой ожидаемый результат:

Я попытался как этот-й дает ошибку.

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; 
+1

Как создать свой выход прямо сейчас? Что вы пробовали? Какая часть этого не сработала? Google sql присоединиться. –

+0

@a_horse_with_no_name, в MySQL мы можем использовать ['AND' и' && '] (http://dev.mysql.com/doc/refman/5.0/en/logical-operators.html#operator_and) также .. :) –

+0

@a_horse_with_no_name, у меня нет глубоких знаний, но я старался и работал! : D –

ответ

1

Простой Inner 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, 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 

Или использовать Inner присоединиться Регистрация ключевого слова

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 
+1

За возможным исключением CROSS JOINs, я думаю, что мы должны препятствовать использованию неявных объединений, где бы мы ни находились. – Strawberry

+0

Клубника спасибо за предложение..Я отредактировал свой вопрос, что бы я ни пытался, а также упомянул причину, по которой я застрял. – Bhavesh

+0

@Strawberry: даже для кросс-соединений я думаю, что использование явного 'CROSS JOIN' лучше, потому что оно документирует, что вы действительно намереваетесь это сделать. –

0

Просто используйте ступенчатость в ЕКЕ затем применить присоединиться к О связи полей между таблицы:

вы также можете использовать inner join...on заявление вместо использования (=), в котором пункт

Смежные вопросы