簡體   English   中英

左聯接與子選擇-右表列未顯示

[英]Left Joining with a subselect - right table columns not showing

我正在音樂會發起人的網站上工作,我必須檢索每次巡回演出的第一個,最后一個和最近的將來日期。 我正在嘗試通過以下查詢執行此操作:

SELECT tour.*, min(date) AS `startdate`, max(date) AS finaldate
  FROM tour, tour_date
  LEFT JOIN (
    SELECT tour_id, min(date) AS nextdate
      FROM tour_date 
      WHERE date>=CURDATE()
      GROUP BY tour_id
  ) AS ndtable
    ON ndtable.tour_id=tour_date.tour_id
  WHERE tour.id=tour_date.tour_id
  GROUP BY tour_date.tour_id
  ORDER BY nextdate

我正在獲取左側表格的結果,但未顯示“ nextdate”列。


編輯:我忘了提及此查詢僅與將來的演出巡回演出相關,因此我能夠像這樣重新排列它:

 SELECT tour.*, MIN(td.date) AS startdate, MAX(td.date) AS lastdate, MIN(ntd.date) AS nextdate FROM tour JOIN tour_date AS td ON tour.id=td.tour_id JOIN tour_date AS ntd ON tour.id=ntd.tour_id WHERE ntd.date>CURDATE() GROUP BY td.tour_id ORDER BY nextdate 

我認為這更加整潔和高效:)

SELECT tour.*, min(date) AS `startdate`, max(date) AS finaldate, ndtable.nextdate
  FROM tour, tour_date
  LEFT JOIN (
    SELECT tour_id, min(date) AS nextdate
      FROM tour_date 
      WHERE date>=CURDATE()
      GROUP BY tour_id
  ) AS ndtable
    ON ndtable.tour_id=tour_date.tour_id
  WHERE tour.id=tour_date.tour_id
  GROUP BY tour_date.tour_id, ndtable.nextdate
  ORDER BY nextdate

暫無
暫無

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

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