2016-03-28 35 views
0

4 tablom var. (Soru için 4 tablolar Basitleştirilmiş)MySQL sorgusu - Birden çok tabloyu kullanma

Tablo 1: Tedarikçi - Kimliği, Tür, TypeId, ExpiryDate

Tablo 2: SupplierType1 - Kimliği, UserId, SupplierName

Tablo 3 : SupplierType2 - Kimliği, UserId, SupplierName

Tablo 4: UserId, İsim

Tüm Id'ler yalnızca tablolarında otomatik artışlardır. Tedarikçi olarak

: 'tipi 'TypeId' SupplierType1 veya SupplierType2

ya değinmektedir SupplierType1 veya SupplierType2 birinden 'Id' dir. SupplierType1 ve SupplierType2 Her iki

: 'Userıd' I 'UserId' (aşağıdaki X olarak gösterilen) kullanıcı

den Kimliği. Ben bu sütunları olan bir listesini dönmek istiyorum: Supplier.Id, SupplierType1.RetailName, ExpiryDate

Nerede (SupplierType1.UserId == 'X' VE Supplier.TypeId == SupplierType1 VE Supplier.ExpiryDate < CurrentDate)

Sadece son zamanlarda mysql kullanmaya başladım ve mevcut çözümlerim çok hantal görünüyor. Bunu yapmak için daha iyi bir yol öğrenmek için Keen. Yardım için minnettar olurum. Şimdiden teşekkürler!

cevap

2

sorgu

$qry = " 
SELECT * 
FROM Supplier s 
LEFT JOIN SupplierType1 s1 ON s1.id=s.TypeId 
LEFT JOIN User u ON u.Id=s1.UserId 
WHERE s1.UserId='X' AND s.TypeId='SupplierType1' AND s.ExpiryDate<CURDATE() 
"; 
+0

Teşekkür Devs, mükemmel! – Diego

+0

Bir şey değil –

İlgili konular