द्वारा अलग-अलग मान आदेश का चयन MySQL (मैं अंग्रेजी बहुत अच्छी तरह से बात नहीं सकते, लेकिन मैं पूरी कोशिश करता हूँ)datetime
मैं दो तालिकाओं की है।
table1
id carid user --------------------- 1 | A001 | user1 2 | A002 | user1 3 | A003 | user2 4 | A002 | user3
table2
id carid datetime lat lon ---------------------------------------------------- 1 | A001 | 2013-25-06 10:00:00 | -23.0000 | -46.0000 2 | A002 | 2013-25-06 10:01:00 | -24.3500 | -45.3200 3 | A002 | 2013-25-06 10:02:00 | -24.3800 | -45.3300 4 | A001 | 2013-25-06 10:05:00 | -23.0500 | -46.1000 5 | A003 | 2013-25-06 10:07:00 | -24.3500 | -45.3200 6 | A001 | 2013-25-06 10:10:00 | -23.0700 | -46.1200
मैं "user1" से "carid" datetime
परिणाम द्वारा आदेश दिया प्रत्येक विशिष्ट रजिस्ट्री चयन करने की आवश्यकता मैं की जरूरत है:
carid datetime lat lon -------------------------------------------------- A001 | 2013-25-06 10:10:00 | -23.0700 |-46.1200 A002 | 2013-25-06 10:02:00 | -24.3800 |-45.3300
जिस तरह से मैं वास्तव में बना रहा हूं, मैं जिस उपयोगकर्ता को चाहता हूं उससे सभी "कैरिड" का चयन कर रहा हूं, और प्रत्येक पंक्ति को व्यक्तिगत रूप से .NET के माध्यम से चुन रहा हूं। मैं querys का एक बहुत कुछ करना है कि उपयोगकर्ता से "carid के"
SELECT * FROM table2 WHERE car_id='A001' ORDER BY datetime DESC limit 1
SELECT * FROM table2 WHERE car_id='A002' ORDER BY datetime DESC limit 1
लेकिन रजिस्ट्रियों की संख्या के आधार:
`SELECT carid FROM table1 where user = “user1”;`
carid ----- A001 A002
तब पंक्ति मैं चाहता हूँ का चयन। मैं अगर यह एक एकल का चयन करें जिस तरह से मैं कर रहा हूँ में सुधार के साथ ऐसा करना संभव है पता नहीं है, लेकिन यह है कि मैं क्या कोशिश की है है:
SELECT car_id, datetime, lat, lon from table1
INNER JOIN table2 on carid = car_id
WHERE user = 'user1'
GROUP BY carid
ORDER BY datetime DESC;
परिणाम:
carid datetime lat lon ------------------------------------------------------ A002 | 2013-25-06 10:01:00 | -24.3500 | -45.3200 A001 | 2013-25-06 10:02:00 | -23.0000 | -46.0000
और
SELECT car_id, MAX(datetime) as datetime, lat, lon from table1
INNER JOIN table2 on carid = car_id
WHERE user = 'user1'
GROUP BY carid
ORDER BY datetime DESC;
परिणाम::
01 मैं भी इस की कोशिश कीcarid datetime lat lon ------------------------------------------------------ A001 | 2013-25-06 10:10:00 | -23.0000 | -46.0000 A002 | 2013-25-06 10:02:00 | -24.3500 | -45.3200
लेकिन परिणाम मुझे मिला गलत है। मुझे नहीं पता कि सभी पंक्तियों का चयन किए बिना क्या करना है, जो कि वास्तव में इसे बनाने के तरीके से धीमा तरीका है।
कोई विचार?
तालिका डेटा के साथ एक अच्छी तरह से लिखित प्रश्न के लिए +1, और आपने अपनी समस्या को हल करने का प्रयास कैसे किया। – Taryn