Удалить строки SQL, значения которых совпадают с другой таблицей, но не используются

0

Я использую Php my admin. Я бы очень признателен за любые советы или помощь. Я пытаюсь удалить адрес, который не используется на основе столбцов из другой таблицы.

У меня есть 2 таблицы:

tbladdress

id         Address 
1222       add1
1332       add2

tblcx

name       location    Status
ana        1222        completed
ema        1332        used
ada        1332        completed

Я хочу удалить строки из tbladdress, где id равен tblcx, где tblcx Status завершен, а если tblcx Status не используется, удаление

желаемый выход

tbladdress

id         Address 
1332       add2

id 1332 не были удалены, поскольку он все еще используется другим клиентом

Я использую этот запрос

DELETE tbladdress
FROM tbladdress t1 INNER JOIN tblcx t2 ON t1.ID = t2.location and t2.Status='Completed';

это дает мне ошибку sql

  • 0
    Какую ошибку SQL вы получаете? Я предполагаю, что проблема, во-первых, в том, что первая ссылка на tbladdress не имеет смысла, во-вторых, что вы пытаетесь удалить из объединения. Возможно, я ошибаюсь по этому поводу, но подумайте о синтаксисе в соответствии с DELETE FROM tbladdress t1, где t1.id in (выберите t2.location из tblcx t2, где t2.status = 'Completed')
  • 0
    А также??? Что за ошибка ??? Как вы ожидаете, что мы поможем вам, если мы не знаем, что не так с вашим запросом?
Показать ещё 1 комментарий
Теги:
phpmyadmin

1 ответ

0
Лучший ответ

Вы определили псевдонимы таблиц, поэтому используйте их:

DELETE t1
FROM tbladdress t1 INNER JOIN
     tblcx t2 
     ON t1.ID = t2.location and t2.Status = 'Completed';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню