1
이것은 내 쿼리입니다.내 where 절이 원하는 것의 반대를 반환합니다.
select sp.name, spi.sku, sum(spi.price), count(sp.name), spi.in_stock, spi.price, sp.is_published, spi.is_reorderable
from shop_product_category spc
inner join shop_product_category_xref spcx
on spc.shop_product_category_id = spcx.shop_product_category_id
inner join shop_product sp
on sp.shop_product_id = spcx.shop_product_id
inner join shop_product_item spi
on spi.shop_product_id = sp.shop_product_id
inner join shop_order_item soi
on spi.shop_product_item_id = soi.shop_product_item_id
where (spc.shop_product_category_id in (1316))
and sp.is_published = 1
group by sp.name
order by count(sp.name) desc
그것은 따라서 = where 절을 1 sp.is_published 어디 그 라인을 반환 할 경우를 제외하고 잘 모든 것을 반환합니다. 원하는 결과를 얻으려면 현재 where 절을 sp.is_published <> 1
으로 변경해야합니다. 질문은 다음과 같습니다. 왜 <> 1은 1로 행을 반환하고 = 1은 0으로 행을 반환합니다. 감사합니다
mysql' 당신이 '때로 믿을 절 by'은'그룹에서 열을 생략 할 수 있습니다'때문에 당신은 아마 원하지 않는 행동을 받고 틱 t를'select' 절에 넣으십시오. 해당 필드를'group by' 절에 추가하고 문제가 해결되지 않는지 확인하십시오 ... – sgeddes
아마 1이 문자열입니까? 너는 단 하나 진드기로 그것을 포위하는 시도 했는가? IE'sp.is_published = '1''? – Zak
@sgeddes 방금 시도했지만 여전히 0을 반환하고 1이 아닙니다./아이디어를 가져 주셔서 감사합니다. – Bartonb12