2012-12-28 16 views
5

Ben İç birleştirmeyi mysql ile nasıl seçilir?

durumunu

aşağıdaki mysql veritabanından kayıt getirmesini istediğiniz aşağıdaki tablolar vardır:

  • organization_ Tablo

    organizationId | organizationname 
    
  • kampanya Tablo

    camp_id | camp_name | adv_id | organizationId 
    
  • reklamverenlerin se Tablo

    adv_id | adv_name 
    
  • ad_display Tablo böyle rekor getirmesini istediğiniz ad_display tablodan Şimdi

    ad_displayId | adv_id | camp_id | 
    

: Nerede organizationbase == olarak WHERE condtion ile

| adv_name | camp_name | organizationname 

?

Temel olarak kampanyaların reklam listesini istiyorum, burada organization_id =?

Not: ad_display

cevap

7

bu deneyin:

SELECT ad.ad_displayId, a.adv_name, c.camp_name, o.organizationname 
FROM ad_display ad 
INNER JOIN advertise a ON ad.adv_id = a.adv_id 
INNER JOIN campaign c ON ad.camp_id = c.camp_id 
INNER JOIN organization o ON c.organizationId = o.organizationId 
WHERE o.organizationId = ?; 
+0

thnx altında ... onun worked..actually bu mysql için yeni ve ayrıca sql sorgusu için ... ama tüm çocuklar Bunun için hızlı..tnx –

2

böyle Belki bir şey birden girişle camapign tablosundaki aynı adv_id ve aynı camp_id için çoklu giriş olmalıdır?

SELECT Distinct 
    advertise.adv_name, 
    campaign.camp_name, 
    organization_.organizationname 
FROM 
    advertise inner join campaign 
    on advertise.adv_id = campaign.adv_id 
    inner join organization_ 
    on campaign.organizationID = organization_.organizationID 
WHERE 
    organization_.organizationID = 1 
1
SELECT * FROM campaign 
LEFT JOIN ad_display ON campaign.camp_id = ad_display.camp_id 
LEFT JOIN advertise ON ad_display.adv_id = advertise.adv_id 
WHERE campaign.organizationId = <?> 
1

Kullanım kodu

SELECT dv_name, 
     camp_name, 
     organizationname 
FROM organization 
     inner join campaign 
       ON organization.organizationid == campaign.organizationid 
     left join advertise 
       ON campaign.adv_id == advertise.adv_id 
WHERE condition =? ; 
1
SELECT advertise.adv_name, 
     campaign.camp_name, 
     organization_Table.organizationname 
FROM ad_display 
    INNER JOIN advertise ON ad_display.adv_id = advertise.adv_id 
    INNER JOIN campaign ON ad_display.camp_id = campaign.camp_id 
    INNER JOIN organization_ Table ON campaign.organizationId = organization_Table.organizationId 
    AND organization_Table.organizationId=? 
-1
SELECT batch_number, 
     Count(receipt_number) AS tot_rec, 
     Sum(amount)   AS tot_amount 
FROM receipt_header 
GROUP BY batch_number 
UNION ALL 
SELECT batch_number, 
     Count(receipt_lines.receipt_number), 
     Sum(receipt_lines.amount) 
FROM receipt_lines 
     INNER JOIN receipt_header 
       ON receipt_header.record_id = receipt_lines.header_record_id 
GROUP BY batch_number 
ORDER BY batch_number ASC;