2014-04-27 54 views
0

我想使用LIKE運算符與INNER JOIN和GROUPING修飾符相結合來獲得匹配變量的結果。內部加入按功能分組

我與此查詢時遇到的問題:

-the加入,因爲它是由正在被用來連接兩個表的同一列編組不會與修改工作。我得到的錯誤「#1052 - 列‘社’在字段列表是不明確的」

SELECT Agency,Acronym,last,sum(last),current,sum(current),source,url 
FROM `budget_table` INNER join budget_table2 on 
budget_table.agency=budget_table2.agency WHERE (Agency) LIKE('%$agency%') GROUP BY Agency 

我已經通過其他的答案看上去但我不能夠學以致用發佈到我在做什麼。將不勝感激。我的JOIN有什麼問題嗎?

我想選擇兩個表共用唯一機構,然後與變量從這些結果中匹配的數據。

+1

必須指定'budget_table.Agency'或'budget_table2.Agency'(MySQL不知道該選哪一個)。 – thebjorn

+0

你在兩個表中都有代理,所以你需要使用表別名來引用它們。 –

+0

謝謝你。我試圖使它與建議一起工作,但不確定我在用別名做什麼。 – user3470715

回答

0

如果您在兩個表中具有相同的列名稱,則必須引用該表以獲取列值。將表格名稱寫在select,where和group中的列名之前。

例子:

SELECT budget_table.Agency /* ...your code... */ 
WHERE budget_table.Agency LIKE ('%$agency%') 
GROUP BY budget_table.Agency 
+0

我試過這個,但它不工作。 {SELECT代理爲一體,縮寫,最後總和(去年),電流總​​和(電流),來源,網址 FROM'budget_table' INNER JOIN budget_table2上 budget_table.one = budget_table2.one WHERE(機構)LIKE('%健康%')GROUP BY budget_table2.agency}我從來沒有使用過別名,也沒有找到非常好的資源,所以 – user3470715

+0

顯然你的GROUP BY現在是正確的。 (GROUP BY budget_table2.Agency)。但是你需要在你的WHERE和SELECT中做同樣的事情。像這樣的東西: 「選擇budget_table2.Agency FROM budget_table INNER JOIN budget_table2上budget_table.one = budget_table2.one WHERE budget_table2.Agency LIKE '%健康%' GROUP BY budget_table2.Agency」 – guinatal

+0

你必須寫別名在裏邊反列WHERE子句:WHERE(budget_table.agency)LIKE ...' – abl