2012-02-27 2 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을 사용하고 싶습니다하지만 난 그것을 대신 null 값을 반환으로 작동 점점 힘든 시간을 보내고있다. 이 문제를 해결하기 위해 할 수있는 일이 있다면 무엇을 알려주세요.

감사합니다.

+0

GROUP_BY 절을 사용하고 있습니까? GROUP_CONCAT는 그룹화 중일 때만 작동합니다. – lamplightdev

+0

안녕하세요, 아니요. GROUP_BY을 (를) 사용하지 않고 위 코드에 GROUP_CONCAT을 넣지 않았습니다. SELECT 문에서 GROUP_CONCAT을 사용하려고했습니다. –

+0

DB 결과를 실제로 GROUP하는 경우에는 GROUP_CONCAT() 만 사용할 수 있습니다. 어쩌면 당신은'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 함수로 작동하도록 거부 할 것으로 보인다. Group By조차 그 자체로 오류가 발생했습니다. 내 쿼리 구조 내에서 작동하지 않는 이유가 있습니까? –

+0

GROUP BY 절을 추가하면 오류가 발생하는 이유가 없습니다. 오류가 무엇입니까? – lamplightdev

+0

오류가 정확히 무엇인지 모르겠지만 검색 매개 변수에 따라 검색 결과에 대한 오류 처리기가 나타나면 거기에 결과가 있음을 알 수 있습니다. –