난 구조 세 테이블 저는 여기여러 개의 선택 쿼리를 하나로 결합하는 방법은 무엇입니까?
SELECT Product_reference FROM refrence where categories_id=3 AND Product_property ='xxx'
로 Product_property & categories_id에 대하여에 refrence 테이블 Product_reference 값을 추출하고
CREATE TABLE IF NOT EXISTS `refrence` (
`products_ref_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`categories_id` int(11) NOT NULL,
`Product_property` varchar(255) NOT NULL,
`Product_reference` varchar(50) NOT NULL,
PRIMARY KEY (`products_ref_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
CREATE TABLE IF NOT EXISTS `product_details` (
`products_id` int(11) NOT NULL AUTO_INCREMENT,
`categories_id` int(11) NOT NULL,
`FieldA` varchar(30) NOT NULL,
`FieldB` varchar(50) NOT NULL,
`FieldC` varchar(255) NOT NULL,
`FieldD` varchar(255) NOT NULL,
`FieldE` varchar(255) NOT NULL,
`FieldF` varchar(255) NOT NULL,
`Field_desc` text NOT NULL,
PRIMARY KEY (`products_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=98 ;
지금이 Product_reference가 product_details 테이블한다고 가정 결과의 필드 이름이 abc입니다. 그래서 내가
SELECT Distinct abc FROM product_details where categories_id=3
지금 내가 하나에 쿼리를 모두 결합 원하는 product_details 테이블에서 별개의 ABC를 추출 할, 하나 하나에 이러한 쿼리를 작성하는 방법은 무엇입니까.
나는이
SELECT Distinct (
SELECT Product_reference FROM refrence where categories_id=3 AND Product_property ='xxx'
) as aa FROM product_details where categories_id=3
하지만 그 작동하지 않는, 수 있습니다 내가 몇 가지 구문을 놓치고을 시도했다. Eggyal에 의해 지적,이 때문에 항상 CATEGORY_ID =의 불가능 상태로 아무 것도 반환하지 않습니다
SELECT r.product_reference
FROM refrence AS r
LEFT JOIN categories AS c ON (c.categories_id = r.categories_id AND r.categories_id=3 AND r.product_property='zzz')
WHERE c.categories_id=1
: 당신이 이러한 목표를 달성하기 위해 노력하고 있음을 나타납니다 작동하지 않는 것을 모른 채
"비트가 작동하지 않음"- 좀 더 구체적으로 표현할 수 있습니까? 오류가 무엇입니까? –
categories_id는 모든 테이블에서 동일합니다 .... 외래 키로 사용하고 있습니까? –
당신의 질의를 보니,'categories_id = 3' 레코드 인'refrence'를 왜,'categories_id = 1' 레코드의'product_details'를 검색하는지, 그리고 당신의 질의를 의도 한 내용에 대한 설명은 분명하지 않습니다. do는 이해하기가 매우 어렵습니다. 아마도 당신은 분명히 할 수 있을까요? – eggyal