2013-10-06 1 views
2

테이블로 쿼리를 사용하여 교사는 ... SELECT 쿼리가 테이블 (반복 항목으로 사용되는 데이터베이스의 일부를 가정) 할 수 그 얘기MYSQL은> 내가 트릭을 잊었

THIS_FUNCTION (선택 링크, 일, OneTable 타바 곳 조건에서 조건 = IGotSomething)

THIS_FUNCTION (= IlostSomething를 링크, 일, OneTable TABB에서 조건 곳 조건을 선택합니다)

선택 tabA.things - 타바에서 tabB.things 내부 결합 tabB on tabA.link = tabB.link

이런 식으로.

누군가가 나를 기억하나요?


내 데이터베이스는 출입하는 모든 트랜잭션에 대해 하나의 테이블을 사용하며, 항목이 이동하는 열로 정의됩니다. 모든 것의 목록을 얻으려면 물건이 어디에서 왔는지 (물건)와 물건이 어디에 있는지 (+ 주식)를 알아야합니다.

그것이 어디에서 왔는지에 대한 사례가있을 것입니다.

이미 방법이 작업을 수행하는 아이디어를 가지고,하지만 난 잊었 그 트릭을 필요로 ...


으악! 내가 런타임 중에 사용자의 요구를 기반으로 이러한 쿼리를 작성할 수 있어야한다고 언급하는 것을 잊어 버렸습니다. 이는 사용자 정의 가능한 항목이므로보기를 작성하고 다시 작성하면 원하는 것보다 더 많은 프로세스가 필요할 수 있습니다.

답변

0

편집 :

CREATE PROCEDURE this_function() 
BEGIN 
    Select link, things, conditions from OneTable tabA where conditions = IGotSomething; 
END 

다음 : 여기 하나의 방법입니다 여기


CALL this_function(); 
다른 방법, 그러나 당신의 DB에 새 테이블을 생성합니다 :

CREATE ALGORITHM = UNDEFINED VIEW `tabA` AS Select link, things, conditions from OneTable tabA where conditions = IGotSomething; 

CREATE ALGORITHM = UNDEFINED VIEW `tabB` AS Select link, things, conditions from OneTable tabB where conditions = IlostSomething; 

그 다음 :

Select tabA.things - tabB.things from tabA inner join tabB on tabA.link = tabB.link 
+0

이것은 속임수가 아니었지만 ... 나는 그것을 좋아합니다 ... 고맙습니다. 지금 사용하겠습니다. 이 모든 것을 하나의 쿼리에 넣을 수 있기를 바랍니다. – dgood1

+0

오, 잡았다. 좋은 소식은 첫 번째 부분을 한 번만 실행하면된다는 것입니다. 그런 다음 데이터베이스에 두 개의 테이블을 작성해야합니다. – jerdiggity

+0

웁스! 그러면 문제가 될 것입니다 ... 런타임 중에 사용자의 요구 사항을 기반으로 이러한 쿼리를 작성할 수 있어야합니다. 이는 사용자 정의 가능한 항목이므로보기를 작성하고 다시 작성하면 원하는 것보다 더 많은 프로세스가 필요할 수 있습니다. 다음에 실험 해 보겠습니다. 머리를 주셔서 감사합니다. – dgood1

관련 문제