2012-02-27 3 views
0

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

+0

Здравствуйте, нет Я не использую GROUP_BY, я просто не поставил GROUP_CONCAT в код выше. Я пытался использовать GROUP_CONCAT в инструкции SELECT –

+0

Ну, вы можете использовать только «GROUP_CONCAT()», если вы фактически «GROUP» получили свои результаты в базе данных. Может быть, вам нужна функция 'CONCAT()'? В зависимости от того, чего вы на самом деле хотите достичь – Thorsten

ответ

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. Даже сама по себе сама по себе приводила к ошибке. Есть ли причина для того, чтобы это не работало в моей структуре запросов? –

+0

Я не вижу причины, по которой добавление предложения GROUP BY приведет к ошибке. Какая ошибка? – lamplightdev

+0

Я думаю, я не знаю, что такое ошибка, но мой обработчик ошибок без каких-либо результатов возникает, когда, согласно параметрам поиска, я знаю, что есть результаты. –