2012-02-27 75 views
0

我在我的SQL查詢中引入了一個Group_Concat函數。我試圖用PHP來解決它,但我寧願用SQL代替它。我的代碼如下,我正在使用最新版本的MYSQL。SQL幫助〜GROUP_CONCAT

SELECT Main.Title, Main.DatePrint, Main.PerformanceDate, Main.Unsure_Sure, Main.Register, Main.notes, 
VenueKey.Venue,AuthorKey.Author, CompanyKey.Company, PrintKey.Printer, SourceKey.Source 
FROM Main INNER JOIN MainVenue 
    ON Main.MainID = MainVenue.ID_V 
    INNER JOIN VenueKey 
    ON MainVenue.VenueID = VenueKey.ID_V_K 

    INNER JOIN MainAuthor 
    ON Main.MainID = MainAuthor.ID_A 
    INNER JOIN AuthorKey 
    ON MainAuthor.AuthorID = AuthorKey.ID_A_K 

    INNER JOIN MainCompany 
    ON Main.MainID = MainCompany.ID_C 
    INNER JOIN CompanyKey 
    ON MainCompany.CompanyID = CompanyKey.ID_C_K 

    INNER JOIN MainPrinter 
    ON Main.MainID = MainPrinter.ID_P 
    INNER JOIN PrintKey 
    ON MainPrinter.PrinterID = PrintKey.ID_P_K 

    INNER JOIN MainSource 
    ON Main.MainID = MainSource.ID_S 
    INNER JOIN SourceKey 
    ON MainSource.SourceID = SourceKey.ID_S_K 

理想我想用的作者,地點和公司一GROUP_CONCAT但我一直有一個很難得到它的工作,它不是返回空值。請讓我知道如果有什麼我可以做,以解決這個問題。

謝謝。

+0

您是否正在使用GROUP_BY子句? GROUP_CONCAT只適用於某些事情正在分組 – lamplightdev 2012-02-27 20:58:04

+0

你好,不,我沒有使用GROUP_BY,我只是沒有把GROUP_CONCAT放在上面的代碼中。我試圖在SELECT語句中使用GROUP_CONCAT – 2012-02-27 21:01:24

+0

那麼,如果你實際上對你的數據庫結果進行了GROUP,那麼你只能使用'GROUP_CONCAT()'。也許你需要'CONCAT()'函數?取決於你實際想要達到什麼 – Thorsten 2012-02-27 21:06:48

回答

1

您必須對結果進行分組,以便GROUP_CONCAT有一定的功能。嘗試的東西沿着線:

SELECT 
    AuthorKey.Author, 
    GROUP_CONCAT(VenueKey.Venue) AS all_venues, 
    GROUP_CONCAT(CompanyKey.Company) AS all_companies 
... 
GROUP BY AuthorKey.Author 

得到作者的列表,場地和公司,例如的連續清單。

+0

嘿,我試着實現這個,但我的查詢似乎拒絕使用Group_Concat函數。即使是通過本身添加組導致錯誤。是否有任何理由不在我的查詢結構中工作? – 2012-02-27 21:21:15

+0

我看不到任何添加GROUP BY子句會導致錯誤的原因。什麼是錯誤? – lamplightdev 2012-02-27 21:26:49

+0

我想我不知道錯誤究竟是什麼,但是根據搜索參數,我知道這裏有結果時,我的錯誤處理程序沒有結果。 – 2012-02-27 21:39:31