के साथ SQL से परिणाम प्राप्त करना मैं कुछ (अग्रिम या अधिक जटिल) एसक्यूएल सीखने की कोशिश कर रहा हूं।
मान लें कि मेरे पास हर कार की जानकारी के साथ कारों की एक टेबल है।
फिर मेरे पास कारों के साथ एक और टेबल है, कुछ नए हैं, और कुछ का उपयोग किया जाता है।न्यूनतम, अधिकतम और स्थिति
मैं चाहता हूं कि उपयोगकर्ता एक कार, उदाहरण के लिए होंडा सिविक 2016 देखने में सक्षम हो और कार जानकारी देखें।
लेकिन उपयोगकर्ता को सभी होंडा सिविक 2016 कारों को बेचा जा रहा है, जिसमें उस विशेष वर्ष/मॉडल के लिए उच्चतम और निम्नतम मूल्य शामिल है, जो नए और उपयोग किए जाते हैं।
सभी जानकारी पुनर्प्राप्त करने का सबसे प्रभावी तरीका क्या होगा - कार की जानकारी और किसी पृष्ठ पर प्रदर्शित होने के लिए बेचे जा रहे हैं!
ये मेरी टेबल हैं।
CREATE TABLE Users(
id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(16) NOT NULL,
last VARCHAR(16) NOT NULL,
email VARCHAR(128) NOT NULL,
phone CHAR(10) NOT NULL,
joined DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE Cars(
id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
make VARCHAR(32) NOT NULL,
model VARCHAR(32) NOT NULL,
year INT(4) NOT NULL,
trim VARCHAR(16) NOT NULL
);
CREATE TABLE Market(
id BIGINT(20) NOT NULL AUTO_INCREMENT,
user_id BIGINT(20) NOT NULL,
car_id BIGINT(20) NOT NULL,
condition VARCHAR(5) NOT NULL,
notes VARCHAR(1024) NOT NULL,
PRIMARY KEY(id),
CONSTRAINT cfk FOREIGN KEY (car_id) REFERENCES cars(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT ufk FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE
);
यह मेरे लिए अनावश्यक दिखता है और टेबल को बड़ा होने के कारण धीमा होने के लिए बर्बाद हो जाता है। तो अगर कोई मुझे बेहतर तरीके से दिखाता है तो मैं सराहना करता हूं।
/* Get car information*/
SELECT *
FROM Cars
WHERE make = 'Honda'
AND model = 'Civic'
AND year = '2017'
AND trim = 'EX';
/* I also would like to get the min and max price for this particular car*/
/* ?? How ?? */
/* Get (new) cars being sold and sellers */
SELECT M.*, U.*
FROM Market M
INNER JOIN Users ON M.user_id = U.id
WHERE make = 'Honda'
AND model = 'Civic'
AND year = '2017'
AND color = 'white'
AND trim = 'EX'
AND condition = 'NEW';
/* Get (used) cars being sold and sellers */
SELECT M.*, U.*
FROM Market M
INNER JOIN Users ON M.user_id = U.id
WHERE make = 'Honda'
AND model = 'Civic'
AND year = '2017'
AND color = 'white'
AND trim = 'EX'
AND condition = 'USED';
मैं अंत में PHP का उपयोग निम्नलिखित की तरह कुछ प्राप्त करना चाहते हैं:
{
car: {
make: "Honda",
model: "Civic",
year: 2017,
trim: "EX"
},
market: {
new: {
min: 'overall min',
max: 'overall max',
data: [{
seller:{
name: "John",
last: "Smith",
phone: "xxx-xxx-xxxx",
email: "[email protected]",
},
car: {
price: 15000,
color: "white",
condition: "used",
notes: "Some notes about the car"
}
}]
},
used: {
min: 'overall min',
max: 'overall max',
data: [{
seller:{
name: "John",
last: "Smith",
phone: "xxx-xxx-xxxx",
email: "[email protected]",
},
car: {
price: 15000,
color: "white",
condition: "new",
notes: "Some notes about the car"
}
}]
}
}
}
मैं एक बार मैं जानकारी पुनः प्राप्त है कि प्रारूप में डाल करने में सक्षम हूँ। इसके अलावा मुझे डेटाबेस के माध्यम से पेजिंग करना होगा।
मूल रूप से मुझे अमेज़ॅन क्या करने का सबसे अच्छा तरीका जानने पर रूचि है। एक आइटम विभिन्न विक्रेताओं, और विभिन्न कीमतों पर बिक्री के लिए है। अमेज़ॅन बेची जा रही वस्तु के बारे में जानकारी प्रदान करता है; इसकी हालत, मूल्य, विक्रेता इत्यादि। इसके अलावा, अमेज़ॅन आपको सबसे कम, उच्चतम मूल्य और सामान्य रूप से आइटम के बारे में जानकारी देता है। सबसे अच्छा तरीका क्या है?
मुझे लगता है कि आप अपने 'निर्माण तालिका बाजार' में कॉलम 'मूल्य' भूल गए हैं ...', यह पता लगाया कि आपका क्या मतलब है। डेटा प्रकार 'DECIMAL (10,2)' संभवतः 'मूल्य' के लिए है। –
'रंग' भी गायब है .. – SherylHohman
मैं उन टिप्पणियों की सराहना करता हूं, ध्यान देने का ध्यान प्रदर्शन और इसे पूरा करने का सबसे अच्छा तरीका है। मैं बाकी का प्रबंधन करने में सक्षम हूँ! – Gacci