Присоединитесь к двум таблицам и получите вывод из обоих [дубликат]

Possible Duplicate:
SQL Query JOIN with Table

Если это данные в TestingTable1

BUYER_ID  |   ITEM_ID       |  CREATED_TIME
----------+-----------------+----------------------
1345653      151851771618     2012-07-09 19:57:33
1345653      110909316904     2012-07-09 21:29:06
1345653      221065796761     2012-07-09 19:31:48

И если это ниже данные в TestingTable2

USER_ID  |   PRODUCT_ID    |    LAST_TIME
---------+----------------+-----------------------
1345653     150851771618      2012-07-09 19:57:33
1345653     110909316904      2012-07-09 22:29:06
1345653     221165796761      2012-07-09 12:31:48

Мне нужно сравнитьTestingTable2 сTestingTable1 наBUYER_ID а такжеUSER_ID, Мне нужно посмотреть, еслиBUYER_ID а такжеUSER_ID сопоставляется, то мне нужно сравнитьITEM_ID сPRODUCT_ID а такжеCREATED_TIME сLAST_TIME и если есть несоответствие вTestingTable2 после сравнения сTestingTable1 либо в одном из них, либо в обоих, мне нужно показать результат.

Итак, если вы посмотрите на приведенный выше пример - у меня есть три сценария в основном

Firstly- In TestingTable1, in the First row ITEM_ID is not matching with PRODUCT_ID in the First row of TestingTable2 but CREATED_TIME is matching with LAST_TIME for the first row in both the tables Secondly- In TestingTable1, in the Second row CREATED_TIME is not matching with LAST_TIME in the second row of TestingTable2 but ITEM_ID is matching with PRODUCT_ID for the second row in both the tables Thirdly- In TestingTable1, in the Third row ITEM_ID is not matching with PRODUCT_ID and also CREATED_TIME is not matching with LAST_TIME, so in the third row BOTH of them does not match with TestingTable1 third row.

Итак, это три случая, которые мне нужно охватить при сравненииTestingTable2 сTestingTable1 всегда. А такжеTestingTable1 является основной таблицей, через которую всегда нужно проводить сравнения, поэтому это означает, что данные вTestingTable1 всегда точно.

Поэтому мне нужно показать такой результат, учитывая приведенный выше пример, если он не соответствует ни одному из них, ни обоимTestingTable1 данные затем рядом с ним жеTestingTable2 данные, чтобы я мог видеть, какое значение было вTestingTable1 по сравнению сTestingTable2

BUYER_ID   |   ITEM_ID       |    CREATED_TIME           |      USER_ID   |     PRODUCT_ID     |     LAST_TIME   
-----------+-----------------+---------------------------+----------------+--------------------+-----------------------
1345653        151851771618       2012-07-09 19:57:33           1345653        150851771618         2012-07-09 19:57:33
1345653        110909316904       2012-07-09 21:29:06           1345653        110909316904         2012-07-09 22:29:06
1345653        221065796761       2012-07-09 19:31:48           1345653        221165796761         2012-07-09 12:31:48

Итак, я написал запрос, я думал, что он охватит все мои три сценария, но только он покрылFirst Two неThird One, И я не понимаю, сможем ли мы достичь этого третьего сценария или нет?

SELECT * 
FROM(
    SELECT *
    FROM TestingTable1 A
    JOIN TestingTable2 B ON A.BUYER_ID = B.USER_ID AND B.LAST_TIME = A.Created_TIME 
    WHERE B.PRODUCTID <> A.ITEM_ID
    UNION ALL
    SELECT * 
    FROM TestingTable1 A
    INNER JOIN TestingTable2 B ON A.BUYER_ID = B.USER_ID AND B.PRODUCTID = A.ITEM_ID  
    WHERE B.t1time <> A.Created_TIME  
 ) X    

Любые предложения будут оценены.

Update:-

Просто быстрое обновление того, что я изначально хотел сделать. Как я знал о нескольких проблемах с моим третьим сценарием.

Прежде всего вTestingTable1Я сортирую (ORDER BY) таблицу поBUYER_ID а такжеCREATED_TIME и то же самое сTestingTable2 Я сортирую сUSER_ID а такжеLAST_TIME и я делаю сравнение, убедившись, что данные принадлежатBUYER_ID а такжеUSER_ID в данный день.

Ответы на вопрос(4)

Ваш ответ на вопрос