簡體   English   中英

子查詢在同一個表中加入列?

[英]Subquery to join column's in same table?

這是我的數據庫結構:#problem是檢索pref_country

OrderLead :
 id   lead   order  time   #lead is foreign key to leaddeatail
 1    10     34     null
 2    14     34     null
 3    17     37     null

leaddetail :                           # all pref_country foreign key to Country
 id   name  pref_country_1   pref_country_2   pref_country_3 
 4    rosh         3              4                   null
 10   amit         4              2                   3
 14   xxx          2             null                 null

Country :
 id   name 
 2    India 
 3    USA 
 4    UK

現在我希望所有信息最好通過子查詢,如:

orderleadid   lead_name    lead_pref_country  orderlead_time # where order = 34
1             amit         Uk,India,USA       null
2             xxx          India              null

我想查詢像(子查詢):#here for id and contry

SELECT id,(SELECT group_concat(P.country separator ",") from Country as P, leaddetail as LD where LD.id = orderlead.lead and LD.pref_contry_1 = P.id ) as pref country from orderlead where order = 34;
SELECT 
  OrderLead.id AS orderleadid,
  leaddetail.name AS lead_name,
  CONCAT(IFNULL(c1.id,''), IF(c2.id IS NULL,'', CONCAT(',',c2.name)), IF(c3.id IS NULL,'', CONCAT(',',c3.name))) AS lead_pref_country,
  OrderLead.time AS orderlead_time
FROM OrderLead
  INNER JOIN leaddetail ON leaddetail.id=OrderLead.lead
  LEFT JOIN Country AS c1 ON c1.id=leaddetail.pref_country_1
  LEFT JOIN Country AS c2 ON c2.id=leaddetail.pref_country_2
  LEFT JOIN Country AS c3 ON c3.id=leaddetail.pref_country_3
-- e.g. WHERE OrderLead.order = 34
-- e.g. WHERE (c1.name='India' OR c2.name='India' OR c3.name='India')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM