SELECT NOT IN two foreign keys from other table
There are various ways to do it. 

For NOT IN (not recommended because you will get unexpected results if your columns are nullable), you should have 2 subqueries as the a IN (subquery) requires that the subquery returns a single column:

SELECT tba_id FROM tableA 
WHERE tba_id NOT IN
      ( SELECT tbb_tbAID1
        FROM tableB
        WHERE tbb_date &gt; '$date2'
      )
  AND tba_id NOT IN
      ( SELECT tbb_tbAID2
        FROM tableB
        WHERE tbb_date &gt; '$date2'
      ) ;


or a UNION:

SELECT tba_id FROM tableA 
WHERE tba_id NOT IN
      ( SELECT tbb_tbAID1
        FROM tableB
        WHERE tbb_date &gt; '$date2'
      UNION ALL
        SELECT tbb_tbAID2
        FROM tableB
        WHERE tbb_date &gt; '$date2'
      ) ;


My favourite is NOT EXISTS and seems you got it almost right, in Try2. 

SELECT tba_id 
FROM tableA
WHERE NOT EXISTS                  -- notice the difference with your query
      ( SELECT 1
        FROM tableB
        WHERE (tba_id = tbb_tbAID1 OR tba_id = tbb_tbAID2)
          AND tbb_date &gt; '$date2'
      ) ;


Of course, you could use 2 subqueries as well:

SELECT tba_id 
FROM tableA 
WHERE NOT EXISTS  
      ( SELECT 1
        FROM tableB
        WHERE tba_id = tbb_tbAID1
          AND tbb_date &gt; '$date2'
      ) 
  AND NOT EXISTS  
      ( SELECT 1
        FROM tableB
        WHERE tba_id = tbb_tbAID2
          AND tbb_date &gt; '$date2'
      ) ;


You could also use LEFT JOIN / IS NULL check:

SELECT tba_id 
FROM tableA
  LEFT JOIN tableB
    ON  (tba_id = tbb_tbAID1 OR tba_id = tbb_tbAID2)
    AND tbb_date &gt; '$date2'
WHERE tbb_date IS NULL ;


or:

SELECT tba_id 
FROM tableA
  LEFT JOIN tableB AS b1
    ON  tba_id = b1.tbb_tbAID1
    AND b1.tbb_date &gt; '$date2'
  LEFT JOIN tableB AS b2
    ON  tba_id = b2.tbb_tbAID2
    AND b2.tbb_date &gt; '$date2'
WHERE b1.tbb_tbAID1 IS NULL 
  AND b2.tbb_tbAID2 IS NULL ;