मैं निम्न क्वेरी करने के लिए एक बेहतर तरीका ढूंढ रहा हूं। मैं एक मेज है कि इस तरह दिखता है:एसक्यूएल सहायता: एक नेस्टेड चयन के साथ एकल प्रश्न में पंक्तियों की गणना
game_id | home_team_id | away_team_id
1 | 100 | 200
2 | 200 | 300
3 | 200 | 400
4 | 300 | 100
5 | 100 | 400
और मैं एक प्रश्न निम्नलिखित है कि हर टीम के लिए घर के खेल और दूर खेल की संख्या की गणना और आउटपुट लिखना चाहते हैं: अभी
team_id | home_games | away_games
100 | 2 | 1
200 | 2 | 1
300 | 1 | 1
400 | 0 | 2
, मैंने यह राक्षसता लिखा है जो काम करता है, लेकिन यह धीमा है (मुझे पता है कि यह तालिका से पूरी 2,800 पंक्ति खींच रहा है)।
SELECT
home_team_id as team_id,
(SELECT count(*) FROM `game` WHERE home_team_id = temp_game.home_team_id) as home_games,
(SELECT count(*) FROM `game` WHERE home_team_id = temp_game.away_team_id) as away_games
FROM (SELECT * FROM `game`) as temp_game
GROUP BY home_team_id
क्या एक एसक्यूएल गुरु मुझे बेहतर तरीके से बाहर निकलने में मदद कर सकता है? मुझे लगता है कि मेरी समस्या यह है कि मुझे समझ में नहीं आता कि गिनती प्रश्नों पर फेंकने के लिए टीम आईडी की एक अलग सूची कैसे प्राप्त करें। मैं शर्त लगाता हूं कि एक बेहतर रखा गया, नेस्टेड चयन के साथ एक बेहतर तरीका है। अग्रिम में धन्यवाद!
सभी महान सहायता के लिए धन्यवाद। अंत में, मैंने फैसला किया कि यह ओवर-इंजीनियर के लिए मूर्ख था और फ्रैंक फ्लिन के 2-टेबल दृष्टिकोण (एक टीम टेबल जोड़कर और उनसे जुड़ना) के साथ चला गया। – Greg