简体   繁体   中英

SQL statement join statement

I am stumped on creating a SQL server query. I have two tables shown below with a one to many relationship. I want to pull all activities and include the child pictures if/where IsPrimary = true .

SELECT dbo.Activity.ID, dbo.Activity.Details, dbo.ActivityPicture.DateUploaded, dbo.ActivityPicture.IsPrimaryPicture, dbo.ActivityPicture.ImageData
FROM dbo.ReportTask 
INNER JOIN dbo.ActivityPicture ON dbo.Activity.ID = dbo.ActivityPicture .ActivityID AND dbo.ActivityPicture.IsPrimaryPicture = 'true'

Activity -ID -Details

ActivityPicture -ImageLocation -Description -DateUploaded -IsPrimary -ActivityID

Change your INNER JOIN to a LEFT OUTER JOIN . This will return all items from the first table regardless of whether they have child items in the 2nd table.

SELECT dbo.Activity.ID, dbo.Activity.Details, dbo.ActivityPicture.DateUploaded, dbo.ActivityPicture.IsPrimaryPicture, dbo.ActivityPicture.ImageData FROM dbo.ReportTask LEFT JOIN dbo.ActivityPicture ON dbo.Activity.ID = dbo.ActivityPicture .ActivityID AND dbo.ActivityPicture.IsPrimaryPicture = 'true'

这将返回所有活动对象,并在其中包含true的ActivityPicture.IsPrimaryPicture。

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