MySQL से 3 अलग-अलग उत्पादों का चयन करें।MySQL 3 टेबल
मैं इन 5 टेबल है:
CREATE TABLE `category` (
`c_id` int(6) NOT NULL AUTO_INCREMENT,
`name` varchar(40) NOT NULL,
PRIMARY KEY (c_id)
);
CREATE TABLE `product` (
`p_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(40) NOT NULL,
`brand` varchar(30) NOT NULL,
`image_path` varchar(100) DEFAULT NULL,
PRIMARY KEY (p_id)
);
CREATE TABLE `shop` (
`s_id` int(6) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`country` varchar(30) NOT NULL,
`province` varchar(30) NOT NULL,
`city` varchar(30) NOT NULL,
`suburb` varchar(30) NOT NULL,
`street` varchar(40) DEFAULT NULL,
`streetNumber` varchar(40) DEFAULT NULL,
`postalCode` int(4) DEFAULT NULL,
PRIMARY KEY (s_id)
) ;
CREATE TABLE product_category (
p_id INT NOT NULL,
c_id INT NOT NULL,
PRIMARY KEY (p_id, c_id),
FOREIGN KEY (p_id) REFERENCES Product(p_id) ON UPDATE CASCADE,
FOREIGN KEY (c_id) REFERENCES Category(c_id) ON UPDATE CASCADE
);
CREATE TABLE product_shop (
p_id INT NOT NULL,
s_id INT NOT NULL,
PRIMARY KEY (p_id, s_id),
FOREIGN KEY (p_id) REFERENCES product(p_id) ON UPDATE CASCADE,
FOREIGN KEY (s_id) REFERENCES shop(s_id) ON UPDATE CASCADE
);
असल में, एक उत्पाद कई श्रेणियों हो सकता है। एक श्रेणी को कई उत्पादों को सौंपा जा सकता है। एक दुकान में कई उत्पाद हो सकते हैं। एक उत्पाद कई दुकानों में हो सकता है।
मैं सभी उत्पादों जहां category.c_id = 2, या category.c_id = 8 और shop.s_id = 1 या shop.s_id = 2.
मैं भाग रास्ता इस के साथ कर रहा हूँ चयन करना चाहते हैं :
select *
from product inner join product_category
on product_category.p_id=product.p_id
where (product_category.c_id=2)
or (product_category.c_id=8)
कि सभी उत्पादों 8 की एक श्रेणी आईडी के साथ 2 और भी उत्पादों की एक श्रेणी आईडी है कि हो जाता है, लेकिन यह एक ही उत्पाद में दो बार हो जाता है अगर यह है दोनों category.c_id = 8 और category.c_id = 2.
फिर मैंने इसे अद्वितीय उत्पाद बनाने के लिए प्रयास किया:
select DISTINCT(product.p_id) as product
from product inner join product_category
on product_category.p_id=product.p_id
where (product_category.c_id=2)
or (product_category.c_id=8)
जो अब विशिष्ट है लेकिन उत्पाद या श्रेणी के बारे में पर्याप्त जानकारी नहीं दिखाता है। मैं प्रत्येक पंक्ति में जितना संभव हो उतना जानकारी दिखाना चाहता हूं।
और अगले कदम के लिए केवल लोगों को पाने के लिए वह जगह है जहाँ shop.s_id = 1 या shop.s_id = 2.
किसी को भी मदद कर सकते हैं मुझे वहाँ पाने या करीब? धन्यवाद!
कोशिश 'DISTINCT * का चयन करें' या 'DISTINCT col1, col2 का चयन करें ...' –