UNION आप जो वर्णन करते हैं वह बस नहीं करता है। यह क्वेरी होनी चाहिए:
CREATE TABLE AS
SELECT date, location_code, product_code, quantity
FROM transactions_kitchen k
UNION ALL
SELECT h.date, h.location_code, h.product_code, h.quantity
FROM transactions_admin h
LEFT JOIN transactions_kitchen k USING (location_code, date)
WHERE k.location_code IS NULL;
LEFT JOIN / IS NULL उसी स्थान और दिनांक के लिए दूसरी तालिका से पंक्तियों को बाहर करने के लिए। देखें:
- उन पंक्तियों का चयन करें जो अन्य तालिका में मौजूद नहीं हैं
CREATE TABLE AS . का उपयोग करें इसके बजाय SELECT INTO . मैनुअल:
CREATE TABLE AS कार्यात्मक रूप से SELECT INTO . के समान है . CREATE TABLE AS अनुशंसित सिंटैक्स है, क्योंकि SELECT INTO . का यह रूप ECPG या PL/pgSQL में उपलब्ध नहीं है, क्योंकि वे INTO . की व्याख्या करते हैं खंड अलग। इसके अलावा, CREATE TABLE AS SELECT INTO . द्वारा प्रदान की गई कार्यक्षमता का सुपरसेट प्रदान करता है ।
या, यदि लक्ष्य तालिका पहले से मौजूद है:
INSERT INTO transactions_combined (<list names of target column here!>)
SELECT ...
इसके अलावा:मैं date का उपयोग नहीं करूंगा स्तंभ नाम के रूप में। यह प्रत्येक SQL मानक में एक आरक्षित शब्द है और Postgres में एक फ़ंक्शन और डेटा प्रकार का नाम है।