2012-02-27 82 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