2014-12-05 2 views
1

у меня есть 4 таблицыПолучить количество строк в нескольких присоединиться к

1) comp_login

id   com_name       co_logo   
------ ---------------------------------- ------------------ 
1 UNFAN        default_logo.png 
2 T&P         default_logo.png 
3 Elliot        default_logo.png 
117 walkin        default_logo.png 
118 12 starShipping Management   default_logo.png 
119 ABS Marine       default_logo.png 
120 Accord Marine Management   default_logo.png 
121 Admiral Marine      default_logo.png 
122 AET         default_logo.png 
123 Air Borne Rec.Pvt.Ltd.    default_logo.png 
125 Apex Marine       default_logo.png 

2) m_medicine

Med_Id G_Name        B_Name              
------ ------------------------------- --------------------- 
    1 Acetylsalicylic acid     Aspirin, aspro              
    2 Aciclovir        Zovirax, acyclovir             
    3 Amoxicillin + clavulanate    Augmentin, co-amoxcylav            
    4 Artemether + Lumifantrine    Riamet                
    5 Azithromycin       Zithromax               
    6 Cetirizine       Zyrtec                
    7 Ciprofloxacin       Ciproxin , Cipro             
    8 Dizepam        Valium                
    9 Docusate with senna (for equivalent) Coloxi                
    10 Doxycyline       Neo-Dagracyline, Unodox, 

3) m_shipinv

Id MedId ShipId 
------ ------ -------- 
1  1  2918 
4  2  2918 
5  3  2918 
6  4  2918 
7  5  2918 
9  6  2918 
10  7  2918 
11  8  3095   

4) tbl_vesselmaster

id co_id vessel_name     
------ ------ --------------------------- 
2918  123 Sima Sadaf 
2930  123 Aegean Odyassey    
2925  123 Apj Jad      
2923  123 Astor      
2924  123 Astro      
2941  123 Discovery     
2937  123 Disney Fantasy    
2919  123 Disney Cruise    
2940  123 Disney Dream    
2933  123 Disney Magic    
2934  123 Disney Wonder 
3095  125 sdare  

Я хочу, чтобы он отображал только те сосуды, которые принадлежат компании ... Я хочу показать только Sima sadaf ... Потому что у одной компании есть много судов, а sima sadaf - судно company_id 123. Так что только должны отображаться суда, владельцы которых принадлежат компании. Судно не должно отображаться, так как оно не входит в состав компании

Vessel_ID Vessel_Name Total_Medicine 
---------- ---------- ---------------- 
2918   Sima Sadaf  7 
+0

Я не могу видеть 'vessel_id'm и' id' в 'm_shipinv' кажется излишним – Strawberry

ответ

0

Попробуйте это:

SELECT vs.id as Vessel_ID, vs.vessel_name, COUNT(DISTINCT m.id) Total_Medicine 
FROM t_vesselmaster vs 
INNER JOIN m_shipinv m ON vs.id = m.ShipId 
INNER JOIN comp_login cl ON vs.co_id = cl.id 
WHERE vs.co_id = 123 
GROUP BY vs.vessel_id, vs.vessel_name; 
+0

Thanx Bro он работал: D –

+0

но отображает меня как Симу Sadaf и Sdare ... Я хочу показать только Sima sadaf ... Потому что у одной компании много судов, а sima sadaf - судно company_id 123. Так что должны отображаться только те суда, которые принадлежат компании. @saharshShah –

+0

Я думаю, теперь вопрос Чисто ? –

1

Ниже вы должны приступить к работе. Я не видел релевантности имени лекарства в запросе. Я также предполагаю, что id comp_login соответствует идентификатору судна. Я не уверен, как иначе это будет связано с схемой. Ниже хорошей отправной точки для запроса.

SELECT 
    vs.vessel_id, 
    vs.vessel_name, 
    COUNT(m.id) 
FROM 
    `t_vesselmaster` vs 
    INNER JOIN `m_shipinv` m 
     ON vs.id = m.ShipId 
    INNER JOIN `comp_login` cl 
     ON vs.id = cl.id 
GROUP BY vs.vessel_id, vs.vessel_name 
Смежные вопросы