बाद क्वेरी MySQL 5.x में अच्छी तरह से चलाता हैMySQL सबक्वेरी में शामिल होने के लिए असफल
SELECT
m_area.id, m_area.cn_areaName, m_area.de_areaName,
m_area.en_areaName,m_area.jp_areaName,t_shop.count
FROM
m_area left join
(
select t_shop.areaID, count(areaID) AS count
from t_shop
group by t_shop.areaID
) t_shop
on m_area.id = t_shop.areaID
हालांकि, जब मैं एक ही DB संरचना और डेटा यह सिर्फ निम्न संदेश लौटने के साथ एक 4.0.23 MySQL DB में इसे चलाने के लिए है छोड़ दिया :
1064 - आपको अपने SQL वाक्यविन्यास में कोई त्रुटि है। मैनुअल है कि सही वाक्य रचना के पास का उपयोग करने के लिए अपने सर्वर संस्करण से मेल खाती है की जाँच करें '[
select t_shop.areaID, count(areaID) AS count from t_s
मैं कई बार कोशिश की, लेकिन अभी भी विफल रहा है। MySQL 4.x में अनुमति नहीं है subquery में शामिल छोड़ दिया गया है? तो इसका मतलब है कि मुझे इसे एक अस्थायी तालिका के साथ करना है?
अग्रिम धन्यवाद!
आप सही हैं मैं केवल temp टैब ड्रोप टेम्पलेटरी तालिका के साथ कर सकता हूं अगर temp_shop; टेम्पलेट टेबल temp_shop बनाएं (क्षेत्र आईडी int (11), गिनती int (11)); temp_shop में INSERT t_shop का चयन करें।areaID, t_shop.areaID द्वारा t_shop \t \t \t \t समूह से गिनती (areaID) गिनती \t \t \t \t के रूप में; चयन \t \t \t \t m_area.id, m_area.cn_areaName, m_area.de_areaName, \t \t \t \t m_area.en_areaName, m_area.jp_areaName, temp_shop.count \t \t \t \t से \t \t \t \t m_area में शामिल होने के लिए छोड़ दिया temp_shop \t \t \t \t m_area.id = temp_shop.areaID पर; कभी-कभी हमें कुछ पुरानी मशीनों के लिए कोड करना पड़ता है, जो बहुत दर्दनाक है। –