2012-04-19 19 views
5

2 टेबल है में शामिल हों।MySQL 2 टेबल

मैं बैलेंस टेबल (उपयोगकर्ता आईडी द्वारा लिंक 1 फ़ील्ड) से हालिया प्रविष्टि के साथ उपयोगकर्ता तालिका (सभी टुपल्स के सभी फ़ील्ड) से सभी विवरणों के साथ तालिकाओं में शामिल होना चाहता हूं।

संतुलन:

+---------+ 
| Field | 
+---------+ 
| dbid | 
| userId | 
| date | 
| balance | 
+---------+ 

उपयोगकर्ताओं:

+-------------+ 
| Field  | 
+-------------+ 
| dbid  | 
| id   | 
| fName  | 
| sName  | 
| schedName | 
| flexiLeave | 
| clockStatus | 
+-------------+ 

मैं यह करने के घंटे के लिए कोशिश कर रहे हैं और निकटतम मैं मिल सकता है

यहाँ टेबल की संरचना है

SELECT u.*, b.balance, b.date FROM users u, balance b WHERE u.id = b.userId AND b.date = (SELECT MAX(date) FROM balance WHERE userId = 'A8126982'); 
: एक एकल उपयोगकर्ता के लिए एक पंक्ति वापस जाने के लिए

या मैं सभी उपयोगकर्ताओं को चुन सकते हैं, लेकिन नहीं संतुलन तालिका में सबसे हाल ही में प्रवेश:

SELECT u.*, b.balance, b.date FROM users u, balance b WHERE u.id = b.userId GROUP BY u.id; 

मैं कई अलग अलग प्रश्नों की कोशिश की और करीब हो रही हो रहे हैं, लेकिन मैं सिर्फ मैं कहाँ चाहते हैं कि करने के लिए नहीं मिल सकता है हो।

किसी भी मदद की सराहना की जाएगी।

+0

उत्पादन आप उर पहली क्वेरी में हो रही है क्या है? –

उत्तर

18

आप लेकिन पहले एसक्यूएल आप ने लिखा उपयोग कर सकते हैं सभी उपयोगकर्ताओं के लिए:

SELECT u.*, b.balance, b.date 
FROM users u JOIN balance b ON u.id = b.userId 
WHERE b.date = (SELECT MAX(date) FROM balance WHERE userId = u.id); 

यह सबसे तेज़ तरीका परिणाम प्राप्त करने के नहीं हो सकता है, लेकिन यह आपको दे देंगे कि तुम क्या जरूरत है। मैं अपने ऐप में कुछ स्थानों में समान प्रश्नों का उपयोग करता हूं।

+0

धन्यवाद, यह मुझे आवश्यक परिणाम मिल रहा है। – SteveJDB

संबंधित मुद्दे