• You say there is "no relationship", however, what defines that KidID 20 appears on the same line as ComplainID 4 and SuggestionID 3? Is it just "random"?

    This is another total guess, without DDL, sample data and Expected results, and is completely untested but..:

    WITH Crn AS (
      SELECT C.[Subject] AS NewComplains, C.ID AS ComplainID,
        ROW_NUMBER() OVER (ORDER BY NEWID()) AS RN --Change your ORDER BY to be whatever you like/need
      FROM Complains C
      WHERE C.ReadStatus = 'false'),
    Srn AS (
      SELECT S.[Subject] AS NewSuggestions, S.ID AS SuggestionID,
         ROW_NUMBER() OVER (ORDER BY NEWID()) AS RN --Change your ORDER BY to be whatever you like/need
      FROM Suggestions S
      WHERE S.ReadStatus = 'false'),
    KDrn AS (
      SELECT KD.KidID, KD.Name,
        ROW_NUMBER() OVER (ORDER BY NEWID()) AS RN --Change your ORDER BY to be whatever you like/need
      FROM KidsData KD
      WHERE KD.KidID = (Select KidID from Payments where EndDate < GETDATE())) --This will only return one row?? Seems unlikely
    SELECT Crn.NewComplains, Crn.ComplainID,
       Srn.NewSuggestions, Srn.SuggestionID,
       KDrn.KidID, KDrn.Name
    FROM Crn
      FULL OUTER JOIN Srn ON Crn.RN = Srn.RN
      FULL OUTER JOIN KDrn ON Crn.RN = KDrn.RN OR Srn.RN = KDrn.RN; --Because C might be NULL 

    If there any errors in the syntax, you'll need to resolve those.

    Thom~

    Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
    Larnu.uk