में सम्मिलित पंक्तियों को लौटाना मैं वर्तमान में एक रिपोर्ट पीढ़ी सर्वलेट पर काम कर रहा हूं जो कई तालिकाओं से जानकारी एकत्र करता है और एक रिपोर्ट उत्पन्न करता है। परिणामी पंक्तियों को वापस करने के अलावा, मैं उन्हें एक रिपोर्ट टेबल में भी संग्रहीत कर रहा हूं, इसलिए उन्हें बाद में पुन: उत्पन्न करने की आवश्यकता नहीं होगी, और अगर वे जिन टेबलों से खींचे जाते हैं, वे मिटाए जाएंगे। बाद मैं फार्म के एक बयान है ऐसा करने के लिए (एनबी: एक्स बाह्य उत्पन्न होता है और वास्तव में इस बयान में एक निरंतर):PostgreSQL
INSERT INTO reports
(report_id, col_a, col_b, col_c)
SELECT x as report_id, foo.a, bar.b, bar.c
FROM foo, bar
यह ठीक काम करता है, लेकिन फिर मैं एक दूसरे क्वेरी की जरूरत है वास्तव में जिसके परिणामस्वरूप वापस जाने के लिए पंक्तियों, उदाहरण के लिए
SELECT col_a, col_b, col_c
FROM reports
WHERE report_id = x
यह ठीक काम करता है और बाद से यह केवल एकल तालिका शामिल है, महंगा नहीं होना चाहिए, लेकिन लगता है जैसे मैं सीधे प्रविष्टि दूसरा क्वेरी से बचने का परिणाम लौटाने के लिए सक्षम होना चाहिए। क्या ऐसा करने के लिए कुछ वाक्यविन्यास है जो मैं नहीं ढूंढ पा रहा हूं? (मुझे ध्यान रखना चाहिए, मैं डीबी काम में काफी नया हूं, इसलिए यदि सही उत्तर केवल दूसरी क्वेरी को चलाने के लिए है, तो यह थोड़ा धीमा है, इसलिए यह हो)
हम 8.4 चला रहे हैं ताकि धन्यवाद एकदम सही है,। – Dusty
+1 एक ठोस उत्तर के लिए और (भी) संस्करण आवश्यकताओं का जिक्र करते हैं (हालांकि अधिकांश लोगों को अब तक कम से कम 8.3 पर होना चाहिए) – ChristopheD