이 내 첫 번째 질문, 그래서 내가 (그 너무 오래하지 희망!) 내가 시도하는 MySQL과 PHP를 사용하고MySQL을 (그리고 PHP) 단일 쿼리, 단일 테이블, 여러 규정
을 명확하게하기 위해 노력하고 대략 다음과 같은 구조로 판매 데이터의 MySQL 테이블에서 시작된 php 테이블의 데이터를 비교합니다 (데이터는 여러 위치에서 여러 제품을 사고 팔았 음을 나타냄).
price
quantity
type
buyflag
location
'buyflag는'부울하고 기록 가격이 항목을 구입 또는 판매되고있는 가격인지 여부를 나타냅니다 buyflag = 사실은 항목과 buyflag 구입 한 가격 = 거짓이 표시입니다 제품이 판매 된 가격.
첫 번째 위치에서 제품을 구입하고 두 번째 위치에서 판매 할 때 각 제품 유형별로 두 위치를 비교하는 쿼리 결과가 필요합니다.
'buyprice이'가 위치 1 'sellprice'에서 구입 한 가격은type | quantity | 'buyprice' | 'sellprice'
은 몇 가지 조사 후 위치 2
에 판매 된 가격은 다음과 같습니다 즉,이 같이 보입니다 조인과 하위 쿼리를 사용하여 다른 결과를 표시 할 수 있었지만 데이터가 모두 단일 테이블에 있지만 두 개의 WHERE 문이 필요할 때이 특정 쿼리의 마지막 두 열을 쿼리하는 방법으로이 경우에 난처한 상황에 처했습니다. 그것을 파헤쳐 라.
select type, quantity, max(price) as buyprice
from marketfile
where (buyflag=true and location=102)
group by type;
은 처음 3 열을 얻을 것이다, 또는
select type, quantity, min(price) as sellprice
from marketfile
where (buyflag=false and location=75)
group by type;
는 제 1, 제 2, 제 4 열을 얻을 것이다하지만 난 한 쿼리에서 모든 것을 얻을 방법을 알아낼 수 없습니다.
내 오히려 가난한 하위 쿼리의 노력 (실패)는 지금까지이었다
select type, quantity, min(price) as buyprice,
(select max(price) from marketfile where (buyflag=false and location=75)) as sellprice
from marketfile
where (buyflag=true and location=102)
group by type;
나는 하나의 쿼리에서 그것을하고 싶은 이유는 다음 내가 볼 수있는 테이블로 쿼리를 표시하기 위해 PHP를 사용하는 것입니다 위치 1에서 구입하고 위치 2에서 판매되는 수백 가지 항목 목록을 내리고이 특정 경로의 제품 여백을 살펴보십시오.
위의 두 가지 별도의 쿼리를 사용하여이를 새 테이블로 덤프 한 다음 해당 테이블을 다시 쿼리하면 MySQL의 부적절 함을 해결할 수 있습니다. 이 해결 방법은 여러 위치에서 작업하기 때문에 기하 급수적으로 늘어나는 경로 (따라서 작업 할 테이블)를 늘리고 싶을 때 특히 훌륭하게 보입니다.
미리 도움을 청하십시오.
검색어에 코드 태그 ('101 010'이 표시된 작은 버튼)를 추가하면 질문을 훨씬 쉽게 읽을 수 있습니다. – LittleBobbyTables
LittleBobbyTables 감사합니다. – lillebusy