जोड़ना नई पंक्तियों (मूल्य, अशक्त) के लिए एक कई माता-पिता बच्चे के पदानुक्रम

0

सवाल

मैं कई माता पिता बच्चे के पदानुक्रम से मिलकर 100k+ रिकॉर्ड. यह एक छोटे सबसेट.

बच्चे माता-पिता
1 2
1 3
2 3

मैं के माध्यम से जाने की जरूरत प्रत्येक मान स्तंभ से माता-पिता और जाँच अगर एक ही मूल्य भी मौजूद कॉलम में बच्चे । यदि यह नहीं करता है, तो एक पंक्ति बनाने के लिए (मूल्य, अशक्त). इस उदाहरण में मान 3 में मौजूद नहीं है, बच्चे स्तंभ की जरूरत है तो मैं इसे बनाने के लिए एक नई पंक्ति मूल्यों के साथ (3, अशक्त).

बच्चे माता-पिता
3 अशक्त
1 2
1 3
2 3

मेरे कोड वापस नहीं करता है एक त्रुटि है, लेकिन यह नहीं है कि मैं क्या चाहते हैं यह करने के लिए करते हैं.

INSERT IGNORE INTO #table (child, parent)
SELECT (CASE WHEN parent not in (Select child from #table) THEN parent END) as child, Null
FROM #table

मैं कई नई पंक्तियों के साथ (अशक्त,अशक्त) लेकिन 0 पंक्तियों के साथ (मूल्य, अशक्त). यह किसी भी तरह हमेशा आगे करने के लिए छोड़ किसी और खण्ड जब वहाँ रहे हैं तो कई नए पंक्तियों के साथ (अशक्त, अशक्त), लेकिन नहीं यकीन है कि क्यों.

का उपयोग कर SQL सर्वर प्रबंधन स्टूडियो 17. किसी भी मदद की बहुत सराहना की है.

parent-child sql sql-server
2021-11-23 14:41:35
1

सबसे अच्छा जवाब

1

आप का उपयोग नहीं करना चाहिए case यहाँ है, लेकिन एक आत्म छोड़ दिया है में शामिल होने के बजाय:

INSERT IGNORE INTO #table (child, parent)
SELECT DISTINCT t1.parent, NULL
FROM #table t1
LEFT JOIN #table t2
    ON t1.parent = t2.child
WHERE t2.child IS NULL

देखें लाइव डेमो पर Db<>बेला

2021-11-23 14:53:26

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में