简体   繁体   中英

How do I add another JOIN statement in my query?

I have a .aspx page that has a gridview item on it. The gridview originally displays properly with the query below:

CommandText = "SELECT AnalyticsHub_Requests.*, 
    AnalyticsHub_StatusCodes.ShortDescription AS StatusText 
    FROM AnalyticsHub_Requests 
    LEFT JOIN AnalyticsHub_StatusCodes 
    ON (AnalyticsHub_Requests.StatusId=AnalyticsHub_StatusCodes.Id) 
    WHERE AnalyticsHub_Requests.StatusId IN (4,6)";

I want to display more information from another table so the person assigned to the request is listed. I am trying it like this:

CommandText = "SELECT AnalyticsHub_Requests.*, AnalyticsHub_StatusCodes.ShortDescription 
               AS StatusText 
               FROM AnalyticsHub_Requests 
               LEFT JOIN AnalyticsHub_StatusCodes 
               ON (AnalyticsHub_Requests.StatusId=AnalyticsHub_StatusCodes.Id) 
               WHERE AnalyticsHub_Requests.StatusId IN (4,6) , AnalyticsHub_Assignees.* 
              LEFT JOIN AnalyticsHub_Requests 
              ON (AnalyticsHub_Assignees.AssigneeId=AnalyticsHub_Requests.AssigneeId) 
              WHERE AnalyticsHub_Requests.AssigneeId IN (1,2,3,4,5,6)";

Nothing will display at all though when I try to make it display the assignee information along with it. How do I get it to display the assignee information in the table?

Your SQL syntax is wrong at couple of places. What I understand from your query is that you want AnalyticsHub_Requests to LEFT JOIN with AnalyticsHub_StatusCodes and AnalyticsHub_Assignees to LEFT JOIN with AnalyticsHub_Requests . You can do it by this SQL.

SELECT AnalyticsHub_Requests.*, AnalyticsHub_StatusCodes.ShortDescription AS StatusText, 
    AnalyticsHub_Assignees.* 
FROM 
    AnalyticsHub_Requests 
LEFT JOIN 
    AnalyticsHub_StatusCodes 
        ON (AnalyticsHub_Requests.StatusId=AnalyticsHub_StatusCodes.Id) 
RIGHT JOIN
    AnalyticsHub_Assignees
        ON (AnalyticsHub_Assignees.AssigneeId=AnalyticsHub_Requests.AssigneeId) 
WHERE  AnalyticsHub_Requests.StatusId IN (4,6)
    AND
AnalyticsHub_Requests.AssigneeId IN (1,2,3,4,5,6)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM