我在SQL查询中合并Group_Concat函数时遇到问题。我曾尝试使用PHP解决该问题,但我更希望使用SQL使其正确。我的代码在下面,我正在使用最新版本的MYSQL。

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


理想情况下,我想在Author,Venue和Company上使用Group_Concat,但是我一直很难使它工作,而返回一个空值。如果可以解决此问题,请告诉我。

谢谢。

最佳答案

您必须对结果进行分组,以使GROUP_CONCAT可以使用。尝试以下方法:

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


以获取作者列表以及例如场所和公司的串联列表。

关于php - SQL帮助〜GROUP_CONCAT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9472111/

10-12 12:52
查看更多