2012-12-21 2 views
0

I 다음 쿼리 내가 사용하고 그것은 내가 phpMyAdmin을에서 삭제할 레코드를 표시 충분히 잘 작동이 : 다음삭제 기록을 어디에서 표 B = Y 필드의 X

SELECT zen_customers_basket.* 
FROM zen_customers_basket, zen_products 
WHERE zen_customers_basket.products_id = zen_products.products_id 
      AND zen_products.products_availability = 'out of stock' 

I을 모든 레코드를 확인한 다음 삭제하십시오. 상당히 빠르고 고통스럽지 않지만 이러한 레코드를 자동으로 삭제하는 쿼리가 필요하므로 시간당 한 번 실행되도록 예약 된 다른 쿼리를 사용하여 자동화 할 수 있습니다. 모든 도움을 주시면 감사하겠습니다. 나는 레코드를 삭제하는 방법을 안다. 그러나 나는 두 개의 다른 테이블에서 물건을 선택하고 나서는 무엇이든 망치고 싶지 않기 때문에 적절한 구문을 알지 못한다.

DELETE FROM Table WHERE EXISTS (SELECT zen_customers_basket.* 
FROM zen_customers_basket, zen_products 
WHERE zen_customers_basket.products_id = zen_products.products_id 
      AND zen_products.products_availability = 'out of stock') 

+0

당신이 시간당 삭제 하시겠습니까? – bonCodigo

+1

위의 SELECT와 일치하는 레코드를 삭제하려는 경우 동일한 WHERE 절에서 DELETE를 사용하지 않는 것이 어떻습니까? – RonaldBarzell

답변

0
DELETE zen_customers_basket 
FROM zen_customers_basket, zen_products 
WHERE zen_customers_basket.products_id =   zen_products.products_id 
     AND zen_products.products_availability = 'out of stock' 
0

귀하의 요청에 따라 같은 조건을 사용하여 삭제합니다. 시간을 기준으로 삭제가 확실하지 않습니다. 명확히하십시오.

DELETE FROM zen_customers_basket 
    INNER JOIN zen_products 
    ON zen_customers_basket.products_id = zen_products.products_id 
    WHERE zen_products.products_availability = 'out of stock' 

참조 : T-SQL: Selecting rows to delete via joins