2015-02-20 5 views
-1

У меня есть мой текущий запрос SQL, как, например:PHP - MYSQL Где не существует в SQL

$get_appts = mysql_query("SELECT 
     contact.contact_sms, contact.contact_email, appointments.pet_id, appointments.app_uniq, appointments.appointment_confirmed, appointments.client_id, pets.pet_name, cust.go_sms, cust.go_email, cust.first, cust.last, appointments.clinic_id, practice.clinic_phone, practice.clinic_phone, practice.clinic_img, practice.clinic_name, appointments.appointment_longid, appointments.appointment_date, appointments.appointment_time, appointments.appointment_confirmed FROM appointments 
     LEFT JOIN contact ON appointments.client_id=contact.client_id 
     LEFT JOIN pets ON appointments.client_id=pets.client_id 
     LEFT JOIN cust ON appointments.client_id=cust.id 
     LEFT JOIN practice ON appointments.clinic_id=practice.clinic_id 
     WHERE (appointments.appointment_date='$check_date' AND (appointments.appointment_confirmed !='2' OR appointments.appointment_confirmed != '3') AND contact.participate='1') AND (practice.clinic_id ='$run_clinic_id')"); 

Это работает для моего проекта с момента начала, но теперь мне нужно, чтобы сделать изменения, что Im не конечно, как идти.

У меня есть таблица, называемая contact_record, и она хранит список ранее отправленных SMS-сообщений, отправленных через систему. Теперь мне нужно изменить существующий sql-запрос, чтобы вытащить ту же информацию, но из WHERE все выше и запись не существует в таблице contact_record.

Я могу позаботиться об этом с другим запросом sql и некоторой логикой, но ive терзал мой мозг, чтобы выполнить все это одним запросом. Это возможно? я не могу найти какой-либо код для MySQL, который говорит:

Select * FROM table WHERE table.column = '$var_to_test_against' DOES NOT EXIST IN TABLE 

Если кто-то может помочь мне на моем пути ответа, спасибо!

+0

Вы ищете * не равен *, либо '! =' или '<>' –

+0

Почему голос? – Jason

+0

Похоже, кто-то думал, что вы не показали никаких исследований. Я не ДВ, но я проголосовал за закрытие. Кроме того, вы используете устаревший API ('mysql_') и должны переключиться на MySQLi или лучше, PDO. –

ответ

0

Это не ответ, но это только начало ... Вы говорите, что ваш существующий запрос работает, в этом случае его можно переписать следующим образом:

SELECT c.contact_sms 
    , c.contact_email 
    , a.pet_id 
    , a.app_uniq 
    , a.appointment_confirmed 
    , a.client_id 
    , p.pet_name 
    , cust.go_sms 
    , cust.go_email 
    , cust.first 
    , cust.last 
    , a.clinic_id 
    , k.clinic_phone 
    , k.clinic_phone 
    , k.clinic_img 
    , k.clinic_name 
    , a.appointment_longid 
    , a.appointment_date 
    , a.appointment_time 
    , a.appointment_confirmed 
    FROM appointments a 
    JOIN contact c 
    ON c.client_id = a.client_id 
    LEFT 
    JOIN pets p 
    ON p.client_id = a.client_id 
    LEFT 
    JOIN cust 
    ON cust.id = a.client_id 
    JOIN practice k 
    ON k.clinic_id = a.clinic_id 
WHERE a.appointment_date = $check_date 
    AND a.appointment_confirmed NOT IN (2,3) 
    AND c.participate = 1 
    AND k.clinic_id = $run_clinic_id 
Смежные вопросы