SQL Joins + Stuff in MEME

Basics of SQL for MEME Queries

Creatives and Campaigns


Creatives and Campaigns

SELECT 
    * 
FROM 
    creatives;
                        
Creatives
 id  title campaign_id
1 Skrillex Bees! 1
2 Cooking With Skrillex 1
3 Cooking With LotR Pwniez 2
SELECT 
    * 
FROM 
    campaigns;
                        
Campaigns
 id  name Entry Date
1 Skrillex 29/1/13
2 Pwniez 1/3/13
3 Cats 4/7/12

Everything in both tables

SELECT
     * 
FROM 
    campaigns, creatives;
 
 id titlecampaign_id  id_1 nameEntry Date
1Skrillex Bees!1 • • 1Skrillex29/1/13
2Cooking With Skrillex1 • • 1Skrillex29/1/13
3Cooking With LotR Pwniez2 • 1Skrillex29/1/13
1Skrillex Bees!1 • 2Pwniez1/3/13
2Cooking With Skrillex1 • 2Pwniez1/3/13
3Cooking With LotR Pwniez2 2Pwniez1/3/13
1Skrillex Bees!1 • 3Cats4/7/12
2Cooking With Skrillex1 • 4Cats4/7/12
3Cooking With LotR Pwniez2 4Cats4/7/12

Join on Matching Foreign Key

SELECT 
    * 
FROM 
    campaigns, creatives 
WHERE 
    creatives.campaign_id = campaigns.id;
 
 id titlecampaign_id  id_1 nameEntry Date
1Skrillex Bees!1 • • 1Skrillex29/1/13
2Cooking With Skrillex1 • • 1Skrillex29/1/13
3Cooking With LotR Pwniez2 • 1Skrillex29/1/13
1Skrillex Bees!1 • 2Pwniez1/3/13
2Cooking With Skrillex1 • 2Pwniez1/3/13
3Cooking With LotR Pwniez2 2Pwniez1/3/13
1Skrillex Bees!1 • 3Cats4/7/12
2Cooking With Skrillex1 • 4Cats4/7/12
3Cooking With LotR Pwniez2 4Cats4/7/12
 
 id titlecampaign_id  id_1 nameEntry Date
1Skrillex Bees!1 • • 1Skrillex29/1/13
2Cooking With Skrillex1 • • 1Skrillex29/1/13
3Cooking With LotR Pwniez2 2Pwniez1/3/13

restrict the columns

SELECT 
    id, 
    title, 
    name, 
    entry_date 
FROM 
    campaigns, 
    creatives 
WHERE 
    creatives.campaign_id = campaigns.id;
 
 id titlecampaign_id  id_1 nameEntry Date
1Skrillex Bees!1 • • 1Skrillex29/1/13
2Cooking With Skrillex1 • • 1Skrillex29/1/13
3Cooking With LotR Pwniez2 2Pwniez1/3/13
 
 id titlenameEntry Date
1Skrillex Bees!Skrillex29/1/13
2Cooking With SkrillexSkrillex29/1/13
3Cooking With LotR PwniezPwniez1/3/13

only Titles that Start With Cooking

    SELECT 
        id,
        title, 
        name, 
        entry_date 
    FROM 
        campaigns, 
        creatives 
    WHERE 
        creatives.campaign_id = campaigns.id  
    AND 
        title ILIKE 'Cooking%; 
 
 id titlenameEntry Date
1Skrillex Bees!Skrillex29/1/13
2Cooking With SkrillexSkrillex29/1/13
3Cooking With LotR PwniezPwniez1/3/13

 
 id titlenameEntry Date
2Cooking With SkrillexSkrillex29/1/13
3Cooking With LotR PwniezPwniez1/3/13

only creatives Added in Last 24 Hours

SELECT 
    id, 
    title, 
    name, 
    entry_date 
FROM 
    campaigns, 
    creatives 
WHERE 
    creatives.campaign_id = campaigns.id 
AND 
    entry_date >= now() - interval '24 hours'; 
 
 id titlenameEntry Date
1Skrillex Bees!Skrillex29/1/13
2Cooking With SkrillexSkrillex29/1/13
3Cooking With LotR PwniezPwniez1/3/13

 
 id titlenameEntry Date
3Cooking With LotR PwniezPwniez1/3/13

Now With Added OOP-Goodness

creatives in MEME

Now With Added OOP-Goodness

SELECT * FROM creatives; 
Creatives
 id titlediscriminatorcampaign_id
1Skrillex Bees!ViralCreative1 •
2Cooking With SkrillexEngagementCreative1 •
3Cooking With LotR PwniezViralCreative2 •

SELECT * FROM campaigns;
Campaigns
 id nameEntry Date
• 1Skrillex29/1/13
• 2Pwniez1/3/13
3Cats4/7/12

only Viral Creatives

SELECT 
    id, 
    title, 
    name,
    discriminator, 
    entry_date 
FROM 
    campaigns, 
    creatives 
WHERE 
    creatives.campaign_id = campaigns.id 
AND 
    discriminator = 'ViralCreative';
 
 id titlediscriminatornameEntry Date
1Skrillex Bees!ViralCreativeSkrillex29/1/13
2Cooking With SkrillexEngagementCreativeSkrillex29/1/13
3Cooking With LotR PwniezViralCreativePwniez1/3/13
 
 id titlediscriminatornameEntry Date
1Skrillex Bees!ViralCreativeSkrillex29/1/13
3Cooking With LotR PwniezViralCreativePwniez1/3/13