2014-06-05 2 views
0

C# 및 mysql을 사용하여 다른 테이블에서 여러 행을 삭제하려고합니다. 나는 세 테이블 사용자, 항목 및 edata 있습니다. 사용자 테이블에는 ID (기본 키), 사용자 이름, 암호, 권한이 있습니다. IData (기본 키), 이름, 성, 나이, 도시 및 항목 테이블 : ID (기본 키), 이름, 비용, seller_id, 입찰가가 있습니다.mysql workbench에서 다중 삭제가 작동하지만 Visual Studio에서는 작동하지 않습니다.

delete database.users, database.edata,database.items 
from database.users 
left join database.edata ON database.users.id = database.edata.id 
left join database.items on database.users.id = database.items.seller_id 
where database.users.username = 'mark' 

쿼리는 사용자 테이블에서 사용자의 ID가 edata 테이블에 사용자의 ID와 seller_id에서와 같은 모든 행을 삭제 : 내가 작성하는 관리했습니다 질의는 이것이다 items 테이블과 사용자 테이블의 사용자 이름은 주어진 값 (이 경우 'mark')과 같습니다. 쿼리는 mysql workbench에서 제대로 작동하지만, C# 코드의 Visual Studio에서 사용할 때 어떤 이유로이 예외가 발생합니다. 다중 삭제의 알 수없는 테이블. 나는이 주제에 대해 많은 것을 알기 때문에 별칭이 사용된다면 다중 삭제가있는 버그가 있다는 것을 알았지 만, 제 경우에는 별명을 사용하지 않았습니다. 심지어 테이블과 테이블 열의 전체 이름을 사용하고 있습니다. 지금은 행 삭제를 수행하는 데 몇 가지 다른 쿼리를 사용하지 않아도되고 정직하게도 단 하나의 쿼리 만 사용할 수 있으면 좋지 않습니다. 나를 도울 수있는 사람이 있습니까? 모든 의견을 주시면 감사하겠습니다.

답변

0

테이블의 전체 이름이 아니라 맨 위의 DELETE 부분에 테이블 별칭을 사용해야합니다.

시도해 볼 수 있습니까?

DELETE u 
FROM database.users AS u 
LEFT JOIN database.edata AS d 
    ON d.id = u.id 
LEFT JOIN database.items AS i 
    ON i.seller_id = u.id 
WHERE u.username = 'mark' 

그냥 직장에서 작성 했으므로 테스트 할 수 없습니다. DELETE와 FROM 사이의 다른 별칭을 언급 할 필요가있을 수 있습니다.

+0

고맙습니다. 매력처럼 작동했습니다. 그렇습니다. 다른 별칭도 언급했습니다. 다시 Txx. – user3710772

관련 문제