私は構造を持つ3つのテーブルを持っています
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_propertyとcategories_idに関してrefrenceテーブルからProduct_reference値を抽出しています。
SELECT Product_reference FROM refrence where categories_id=3 AND Product_property ='xxx'
これで、このProduct_referenceはproduct_detailsテーブルのフィールド名になり、結果がabcであると想定します。したがって、product_detailsテーブルから個別のabcを次のように抽出したいと思います。
SELECT Distinct abc FROM product_details where categories_id=3
今、私は両方のクエリを1つに結合したいと思います。これらのクエリを1つに書き込む方法は何ですか。
私はこれを試しました
SELECT Distinct (
SELECT Product_reference FROM refrence where categories_id=3 AND Product_property ='xxx'
) as aa FROM product_details where categories_id=3
しかし、それは機能していません。構文が欠落している可能性があります。