Справка SQL ~ GROUP_CONCAT - PullRequest
       26

Справка SQL ~ GROUP_CONCAT

0 голосов
/ 28 февраля 2012

У меня проблема с включением функции Group_Concat в мой SQL-запрос. Я пытался обойти это с помощью 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

В идеале я хотел бы использовать Group_Concat для Author, Venue и Company, но мне было трудно заставить его работать, вместо этого он возвращал нулевое значение. Пожалуйста, дайте мне знать, что если я могу что-то сделать, чтобы это исправить.

Спасибо.

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

Вы должны сгруппировать результаты, чтобы GROUP_CONCAT могла с чем-то работать. Попробуйте что-то вроде:

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

для получения списка авторов с составленным списком мест и компаний, например.

0 голосов
/ 28 февраля 2012

Этот пост решил мою проблему. Я также пересмотрел свое заявление SELECT и скорректировал его.

Вторая таблица MySQL JOIN / GROUP_CONCAT?

...