2010-03-31 7 views
0

У меня есть 3 таблицы со значениями, как показано нижеMySQL выбрать из нескольких таблицы

**tbl_product** 
recID  pID  price  colour 
1   BDPLA-0001 1.23  White 
2   BDPLA-0002 2.23  Black 
3   BDPLA-0003 2.28  Blue 

tbl_product_size 
recID  pID  size  stock  
1   1   2.0cm  10 
2   1   3.0cm  20 
3   2   2.5cm  30 
4   3   3.6cm  40 
5   3   3.8cm  50 

tbl_order_details 
recID  pID  quantity size 
201   BDPLA-0001 5  2.0cm 
202   BDPLA-0002 10  2.5cm 

tbl_product = t 
tbl_product_size = s 
tbl_order_details = d 

t.recID = s.pID 
t.pID = d.pID 

как я могу объединить таблицы и производят результат, как это

t.pID  s.size  s.stock  d.quantity t.price 
BDPLA-0001 2.0cm  10   5   1.23 
BDPLA-0001 3.0cm  20   null  1.23 
BDPLA-0002 2.5cm  30   10   2.23 
BDPLA-0003 3.6cm  40   null  2.28 
BDPLA-0003 3.8cm  50   null  2.28 

ответ

2

Вы можете использовать союз для этого ,

select a,b,c from table A 
union 
select a,b,c from table B; 

Количество и тип столбцов в каждом выборе должны быть одинаковыми.

+0

пытался союз не будет работать .... нужны некоторые соединения или т.п. просто не могу понять логику еще. –

0

Ваш вопрос кажется неполным, но вы можете попробовать следовать или это поможет вам разобраться, как несколько таблиц используются в запросе.

select t.pID, s.size s.stock d.quantity t.price 
from tbl_product t, tbl_product_size s, tbl_order_details d 
where t.recID=s.pID and d.pID=t.pID 
+0

это приведет к слишком большому количеству несвязанных результатов. В основном я хочу, чтобы данные tbl_order_details тоже сливались с tbl_product_size. однако мне нужно будет пройти через tbl_product, так как tbl_product может связывать обе таблицы. –

+0

, я могу изменить мой запрос выше, я думаю, что он должен работать ...... – Salil

0

Это будет делать трюк

select t.pID, t.price, s.size, s.stock, d.quantity 
from tbl_product t inner join tbl_product_size s on t.recID = s.pID 
left outer join tbl_order_details d on t.pID = d.productCode and s.size = d.size; 
Смежные вопросы