简体   繁体   中英

MySQL LEFTJOIN not working

This SQL script not working though I don't see any issue in syntax or in join logic. Could someone tell me is thr something wrong in this SQL?

SELECT COUNT(1) FROM POS_TRANSACTION N1 
LEFT JOIN POS_TRANSACTION T1 ON N1.TRANSACTION_ID = T1.TRANSACTION_ID 
LEFT JOIN MASTER_TABLE1 T2 ON T1.CUSTOM_FIELD6 = T2.TXT_FIELD2 
WHERE T1.TRANSACTION_DATE > T2.DATE_FIELD1 AND T1.TRANSACTION_DATE < T2.DATE_FIELD2 
AND T1.TRANSACTION_DATE BETWEEN "2013-01-01" AND "2016-07-31" 
AND T2.TXT_FIELD2 IS NOT NULL AND T1.TRANSACTION_ID IS NULL

Here, POS_TRANSACTION have millions of POS data and MASTER_TABLE1 ..MASTER_TABLE-N tables(without Primary Keys in it) have master data used to filter pos data.

Agenda: select non-matching POS records from POS_TRANSACTION using selection filter criteria given for POS_TRANSACTION. And I'm not looking for SUB query or Temp table queries.

Note: This SQL working without T1.TRANSACTION_ID IS NULL at the end or with T1.TRANSACTION_ID IS NOT NULL at the end

Can you try this?

SELECT COUNT(1) FROM POS_TRANSACTION N1 
LEFT JOIN POS_TRANSACTION T1 ON N1.TRANSACTION_ID = T1.TRANSACTION_ID 
LEFT JOIN MASTER_TABLE1 T2 ON T1.CUSTOM_FIELD6 = T2.TXT_FIELD2 
AND T1.TRANSACTION_DATE > T2.DATE_FIELD1 AND T1.TRANSACTION_DATE < T2.DATE_FIELD2 
AND T1.TRANSACTION_DATE BETWEEN "2013-01-01" AND "2016-07-31" 
AND T2.TXT_FIELD2 IS NOT NULL AND T1.TRANSACTION_ID IS NULL

By specifying T1.TRANSACTION_ID IS NULL when the join condition is N1.TRANSACTION_ID = T1.TRANSACTION_ID , you're effectively asking for all N1 rows that don't have a matching T1 row. But since you're joining on TRANSACTION_ID, every N1 row must match itself, so is automatically excluded from this criterion.

Therefore, no POS_TRANSACTION can ever fulfil this criterion; and this query will always return no rows.

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