मेरे पास 3 टेबल हैं। उनमें से प्रत्येक के पास id कॉलम PRIMARY है।

तालिकाओं के बीच कोई संबंध नहीं है।

Table1 has ids: 1, 2, 3, 4
Table2 has ids: 1, 3, 7
Table3 has ids: 4, 9, 10, 15, 20

मैं एक प्रश्न बनाना चाहता हूं जो मुझे प्रत्येक तालिका की अधिकतम आईडी देता है।

table1_max_id | table2_max_id | table3_max_id
--------------|---------------|--------------
1             | 7             | 20   

मैंने जो कोशिश की है वह यह थी:

SELECT 
    MAX(table1.id) AS "table1_max_id",
    MAX(table2.id) AS "table2_max_id",
    MAX(table3.id) AS "table3_max_id",
FROM table1, table2, table3;

लेकिन मुझे NULL, NULL, NULL मिलता है।

ऐसा करना संभव है? यदि हाँ, तो कैसे?

-1
KunLun 20 जिंदा 2021, 17:08
1
आज की युक्ति: हमेशा आधुनिक, स्पष्ट JOIN वाक्य रचना का प्रयोग करें। लिखने में आसान (त्रुटियों के बिना), पढ़ने और बनाए रखने में आसान, और जरूरत पड़ने पर बाहरी जुड़ाव में बदलने में आसान
 – 
jarlh
20 जिंदा 2021, 17:10
1
सुनिश्चित नहीं है कि ओपी यहां क्या करने की कोशिश कर रहा है, इसमें जॉइन की आवश्यकता है, यहां तक ​​​​कि ओपी ने भी इस्तेमाल नहीं किया :)
 – 
RiggsFolly
20 जिंदा 2021, 17:12
1
विडंबना यह है कि यह अपवाद है
 – 
Strawberry
20 जिंदा 2021, 17:12
@स्ट्रॉबेरी, CROSS JOIN?
 – 
jarlh
20 जिंदा 2021, 17:13
@jarlh, JOIN तालिकाओं के बीच संबंध होने पर ही उपयोगी नहीं है?
 – 
KunLun
20 जिंदा 2021, 17:15

1 उत्तर

सबसे बढ़िया उत्तर

MySQL सिंटैक्स उपश्रेणियों को SELECT खंड में रखने का समर्थन करता है, ताकि आप इसका उपयोग कर सकें:

SELECT
    (SELECT MAX(id) FROM table1) AS table1_max_id,
    (SELECT MAX(id) FROM table2) AS table2_max_id,
    (SELECT MAX(id) FROM table3) AS table3_max_id;
1
Tim Biegeleisen 20 जिंदा 2021, 17:10