1

2 つの MySQL テーブルがあります。

Table AllProducts  
AccountID, ProductOwner, ProductNumber  
100001, Tom, ABC1  
100001, Tom, ABC2  
100001, Greg, ABC3  
100002, Charlie, ABC2  

Table ProductData  
AccountID, ProductNumber, ProductDesc  
100001, ABC1, DescHere  
100001, ABC2, DescHere  
100001, ABC3, DescHere  
100002, ABC2, DescHere  

両方のテーブルで ProductNumbers が同じである ProductData からすべてを削除する必要があり、変数を使用して AccountID と ProductOwner を指定します。

たとえば、AccountID が 100001 で、ProductOwner が Tom であることがわかっています。したがって、ProductData テーブルの行 1 と 2 のみを削除したいと考えています。

編集:私が取り組んでいるクエリをクラックしただけかもしれないと思います

mysql_query("DELETE ProductData.* FROM ProductData  
  INNER JOIN AllProducts ON ProductData.ProductNumber = AllProducts.ProductNumber  
    WHERE (ProductData.AccountID = '100001'  
      AND AllProducts.ProductOwner = 'TOM')");

簡単なテストを行ったところ、うまくいくようです - 何か考え/批判はありますか?

4

2 に答える 2

0
DELETE FROM ProductData 
      WHERE ProductNumber IN 
            (SELECT ProductNumber
               FROM AllProducts
              WHERE AccountId=100001
                AND ProductOwner='Tom')
于 2013-05-21T23:34:15.003 に答える