2016-04-11 22 views
-1

aşağıdaki tabloları düşünün katılın.Yazma sorgusu

Tablo Adı:

order_id client_id order_total order_date ...etc 
======================================================= 
1001  1   $400   04/10/2016 
1002  1   .... 
1003  1   .... 
1004  2   .... 
1005  2   .... 

Tablo Adı: order_product

order_id  product_id 
1001   p1 
1003   p1 
1002   p4 

Belirli bir istemci için ürün kimliği temelinde tüm sipariş bilgilerini çekmek için bir sorgu yazmak gerekiyor. Sorgum beklendiği gibi dönmüyor.

Beklenen sonuç olurdu

,

product_id order_id order_total order_date 
p1   1001  $400  04/10/2016 
p1   1003  $800  ...... 

Benim Örnek sorgu:

select * 
    from client_order co 
    join order_product op 
    on co.order_id = op.order_id 
    where co.client_id = 1 

bazı gereklilikleri bulmaya çalışıyorum, büyük bir veritabanı insan değilim. Şimdiden teşekkürler.

cevap

0

deneyin,

Select op.product_id,co.order_id,co.order_total,co.order_date 
    From client_order co,order_product op 
Where co.order_id = op.order_id and co.client_id = 1 
+0

Üyelik kullanıyordum oldu [u dile sütunlar var, var *], o boş bir sonuç kümesi döndürüyor – Siva

+0

nedir sen seçme çekerseniz sonuç –

+0

ahbap * .... .. her iki tablonun da her iki tarlada nasıl geri döndüğünü bana açıklıyor. Her iki yönden günü –

2

Bunun için basit Inner Join kullanabilirsiniz. Sorgu altında

SELECT 
    op.product_id 
    ,co.order_id 
    ,co.order_total 
    ,co.order_date 
FROM 
    client_order co 
    INNER JOIN order_product op ON co.order_id = op.order_id 
WHERE 
    co.client_id = [client_id] 
+0

Ben belirli client_ için ürün kimliği üzerinde _based – Siva

+0

@Siva Tamam belirli bir, beni biraz yanıltmak tüm product_id çekmeniz gerekmektedir. Bir iç birleştirme kullanmak için cevabı güncelledim – Szeki

+0

Iç Birleştirme işleri iyi. Evet, mesele ben Bu tam olarak sahip sorgusudur – Siva