我正在將第五個表添加到現有的連接。原始查詢將始終返回單個行,因爲where子句指定了唯一的ID。下面是我們所使用的表:mySQL:幾個表上的多列連接第二部分
表1
carid,CATID,makeid,modelid,caryear
表2
makeid,makename
表3
modelid,MODELNAME
表4
catid,catname
表5 ID,caryear,makename,MODELNAME
下面是現有的查詢我使用:
SELECT a.*, e.citympg, e.hwympg
FROM table1 a
JOIN table2 b on a.makeid=b.makeid
JOIN table3 c on a.modelid=c.modelid
JOIN table4 d on a.catid=d.catid
JOIN table5 e on b.makename = e.make
and c.modelname = e.model
and a.caryear = e.year
WHERE a.carid = $carid;
有2個問題,我需要解決 -
當在表5中不匹配,它不返回任何結果。似乎我需要做某種左連接或拆分查詢並進行聯合。
當表5中有匹配項時,它返回多行。由於沒有使用返回單行的標準,因此我會選擇citympg和hwympg的平均值。
這兩個目標都可以通過單個查詢來實現嗎?怎麼樣?
完美!這工作正是我需要它的工作。 –