2016-08-10 1 views
0

Ich habe eine MySQL-Tabelle mv4w_campaign_delivery_log von wo ich bekommen abonnenten_id es dann in drei anderen Tabellen überprüfenEinzelwert in mehreren Tabellen überprüft und überprüfen Antwort

mv4w_campaign_track_open 
mv4w_campaign_track_unsubscribe 
mv4w_campaign_track_url 

Wenn die abonnenten_id in der obigen Tabelle vorhanden ist, dann i erhalten wahr sonst falsch ....

zum Beispiel
Subscriber-ID in mv4w_campaign_track_open Tabelle ist aber nicht in anderen beiden Tabellen, so dass ich nicht für andere zwei Tabellen für das einzig wahre recivie wird sie mit werden antworten false ..

Wie kann ich Abfrage dafür schreiben? Ich bin sehr verwirrt, studieren verbindet und andere Dinge, aber immer noch verwirrt, bitte helfen. Sie können für Tabelle Datenbankschema in Nachricht fragen bitte helfen Sie mir

Antwort

0

Es gibt viele Möglichkeiten und hängt davon ab, was Sie Format gewünscht ist, ob es Spalten oder Zeilen sowie andere Dinge sind. Aber hier ist ein Beispiel, wie Sie linken Join mit einer case-Anweisung verwenden können, um festzustellen, ob es sich um einen verwandten Datensatz in Ihrer Protokolltabelle handelt. In der Zukunft, wenn Sie Fragen stellen, zeigen Sie uns, was Sie versuchen!

SELECT 
    DISTINCT 
    l.Subscriber_id 
    ,CASE WHEN o.Subscriber_id IS NULL THEN 0 ELSE 1 END as ExistsInOpen 
    ,CASE WHEN un.Subscriber_id IS NULL THEN 0 ELSE 1 END as ExistsInUnsubscrib 
    ,CASE WHEN u.Subscriber_id IS NULL THEN 0 ELSE 1 END as ExistsInUrl 
FROM 
    mv4w_campaign_delivery_log l 
    LEFT JOIN mv4w_campaign_track_open o 
    ON l.Subscriber_id = o.Subscriber_id 
    LEFT JOIN mv4w_campaign_track_unsubscribe un 
    ON l.Subscriber_id = un.Subscriber_id 
    LEFT JOIN mv4w_campaign_track_url 
    ON l.Subscriber_id = u.Subscriber_id