मैं sql में नया हूं और मुझे डेटाबेस में कई तालिकाओं को खोजने और उनके fname, lname, rname, उनके सलाहकार नाम और सोशल मीडिया पते को वापस करने की आवश्यकता है, लेकिन अभी जब मैं अपना कोड चलाता हूं तो मुझे एक ही नाम कई बार आउटपुट मिलता है और कुछ भी नामों में सलाहकार नहीं होते हैं इसलिए आउटपुट शून्य होना चाहिए फिर भी तालिका में यह सलाहकार क्षेत्र में एक नाम रखता है।

+-------+---------+----------+-------------------------+---------+----------+
| idnum | lname   | fname    | rname                   | private | linkblue |
+-------+---------+----------+-------------------------+---------+----------+
| 22222 | Clemens | Timothy  | clemens.timothy@uky.edu |       0 | tgcl258  |
| 40256 | South   | William  | south.william@uky.edu   |       1 | weso123  |
| 55555 | North   | Dan      | north.dan@uky.edu       |       0 | ddno453  |
| 56732 | Cox     | Courtney | NULL                    |       1 | cco546   |
| 68123 | Smith   | Terry    | smith.terry@uky.edu     |       1 | tlsm321  |
+-------+---------+----------+-------------------------+---------+----------+

+---------+---------+---------------+---------------+-------+-------+
| student | advisor | student_name  | advisor_name  | sdate | edate |
+---------+---------+---------------+---------------+-------+-------+
|   40256 |   40256 | William South | Abby Tanner   | NULL  | NULL  |
|   68123 |   68123 | Terry Smith   | Nicole Taylor | NULL  | NULL  |
+---------+---------+---------------+---------------+-------+-------+

+-------+----------+------------------------------+
| idnum | smtype   | smaddr                       |
+-------+----------+------------------------------+
| 22222 | facebook | facebook.com/clemons.timothy |
| 40256 | facebook | facebook.com/south.william   |
| 68123 | facebook | facebook.com/smith.terry     |
| 22222 | twitter  | twitter.com/clemons.timothy  |
| 40256 | twitter  | twitter.com/south.william    |
| 68123 | twitter  | twitter.com/smith.terry      |
+-------+----------+------------------------------+

आंशिक आउटपुट:

+----------+---------+-------------------------+---------------+------------------------------+
| fname    | lname   | rname                   | advisor_name  | smaddr                       |
+----------+---------+-------------------------+---------------+------------------------------+
| Timothy  | Clemens | clemens.timothy@uky.edu | Abby Tanner   | facebook.com/clemons.timothy |
| Timothy  | Clemens | clemens.timothy@uky.edu | Nicole Taylor | facebook.com/clemons.timothy |
| William  | South   | south.william@uky.edu   | Abby Tanner   | facebook.com/clemons.timothy |
| William  | South   | south.william@uky.edu   | Nicole Taylor | facebook.com/clemons.timothy |
| Dan      | North   | north.dan@uky.edu       | Abby Tanner   | facebook.com/clemons.timothy |
| Dan      | North   | north.dan@uky.edu       | Nicole Taylor | facebook.com/clemons.timothy |
| Courtney | Cox     | NULL                    | Abby Tanner   | facebook.com/clemons.timothy |
| Courtney | Cox     | NULL                    | Nicole Taylor | facebook.com/clemons.timothy |
| Terry    | Smith   | smith.terry@uky.edu     | Abby Tanner   | facebook.com/clemons.timothy |
| Terry    | Smith   | smith.terry@uky.edu     | Nicole Taylor | facebook.com/clemons.timothy |
| Timothy  | Clemens | clemens.timothy@uky.edu | Abby Tanner   | facebook.com/south.william   |
| Timothy  | Clemens | clemens.timothy@uky.edu | Nicole Taylor | facebook.com/south.william   |
| William  | South   | south.william@uky.edu   | Abby Tanner   | facebook.com/south.william   |

कोड:

SELECT fname, lname, rname, advisor_name, smaddr FROM PERSON, ADVISOR, DIGITAL;
sql
0
Tom 22 फरवरी 2020, 19:35
1
आप किस डीबीएमएस उत्पाद का उपयोग कर रहे हैं? "एसक्यूएल" सिर्फ एक क्वेरी भाषा है, न कि किसी विशिष्ट डेटाबेस उत्पाद का नाम। मुझे अपने DBMS को टैग क्यों करना चाहिए
 – 
a_horse_with_no_name
22 फरवरी 2020, 19:37
2
FROM खंड में कभी नहीं अल्पविराम का प्रयोग करें। हमेशा उचित, स्पष्ट, मानक, पढ़ने योग्य JOIN सिंटैक्स का उपयोग करें।
 – 
Gordon Linoff
22 फरवरी 2020, 19:37

2 जवाब

अपनी क्वेरी से, आप तालिका से प्रत्येक कॉलम का चयन कर रहे हैं। इसे समझाने के लिए सबसे अच्छा है, हम कह सकते हैं कि आप तीन तालिका को जोड़ रहे हैं। आपको अशक्त और डुप्लिकेट को रोकने के लिए एक शर्त जोड़नी चाहिए

0
Buchi 22 फरवरी 2020, 19:53

क्या तुम इसे ढूंढ रहे हो? आपके डेटा में एक अजीब बात यह है कि ADVISOR तालिका में छात्र और सलाहकार मान समान हैं।

SELECT P.fname, P.lname, P.rname, A.advisor_name, D.smaddr FROM 
  PERSON P
  LEFT JOIN  ADVISOR A 
  on P.idnum = A.student
  LEFT JOIN DIGITAL D
  on P.idnum = D.idnum;
0
Deepika 22 फरवरी 2020, 22:50