Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL क्वेरी तीन तालिकाओं में शामिल हो रही है

आपका मतलब इस तरह है:

select
    a.project_id,
    b.list_id,
    c.item_id
from
    projects a
        join lists b
            on a.project_id=b.project_id
        join items c
            on b.list_id=c.list_id

आउटपुट कुछ इस तरह होगा:

project_id | list_id | item_id
 1         | 5       |  45
 1         | 5       |  46
 1         | 8       |  12

या क्या आप इसके सभी हिस्सों को एक ही पंक्ति में वापस करना चाहते हैं?

यदि आप एक पंक्ति चाहते हैं, तो आप निम्न की तर्ज पर कुछ कर सकते हैं:

select
    a.project_id,
    group_concat(b.list_id) as listIDs,
    group_concat(c.item_id) as itemIDs
from
    projects a
        join lists b
            on a.project_id=b.project_id
        join items c
            on b.list_id=c.list_id

लेकिन यह सभी समूहीकृत सामग्री से निपटने के लिए PHP में अधिक गड़बड़ हो जाएगा।

आउटपुट कुछ इस तरह होगा:

project_id | list_id | item_id
 1         | 5,8     |  45, 46, 12

आप दोनों को मिक्स एंड मैच भी कर सकते हैं, शायद दोनों दुनिया के सर्वश्रेष्ठ पाने के लिए:

select
    a.project_id,
    b.list_id as listIDs,
    group_concat(c.item_id) as itemIDs
from
    projects a
        join lists b
            on a.project_id=b.project_id
        join items c
            on b.list_id=c.list_id

आउटपुट कुछ इस तरह होगा:

project_id | list_id | item_id
 1         | 5       |  45, 46
 1         | 8       |  12


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL एक्सक्लूसिव लॉक

  2. mysql में पिछले एक सप्ताह के रिकॉर्ड का चयन करें

  3. तालिका क्वेरी बदलने के लिए MySQL बहुत धीमा

  4. एक ही आईडी की कई पंक्तियों के लिए अलग-अलग मान चुनें

  5. उपयोगकर्ता को पुनर्निर्देशित किए बिना लिंक पर क्लिक करके AJAX अनुरोध भेजें