SQL WHERE AFTER JOIN Problem
3 отговора
328 прегледа
SQL WHERE AFTER JOIN Problem
имам следната заявка
SELECT * FROM
table1
LEFT JOIN table2 ON column1
WHERE table2.column2 = 'n' OR table2.column2 = NULL
целта ми е да филтрирам всички записи, в които след JOIN-ване на table2 стойността на table2.column2 не е n /някакво число/ или NULL /тоест за съответния ред няма осъществена релация/...
проблемът е, че WHERE операцията се извършва винаги преди JOIN, вследствие на което нулевите редове не се показват...
има ли някакво решение?
SELECT * FROM
table1
LEFT JOIN table2 ON column1
WHERE table2.column2 = 'n' OR table2.column2 = NULL
целта ми е да филтрирам всички записи, в които след JOIN-ване на table2 стойността на table2.column2 не е n /някакво число/ или NULL /тоест за съответния ред няма осъществена релация/...
проблемът е, че WHERE операцията се извършва винаги преди JOIN, вследствие на което нулевите редове не се показват...
има ли някакво решение?
Re: SQL WHERE AFTER JOIN Problem
чесно казано не се замислих над какво искаш да направиш, НО
table2.column2 = NULL трябва да е table2.column2 IS NULL
table2.column2 = NULL трябва да е table2.column2 IS NULL
Стана и така
SELECT *
FROM table1
LEFT JOIN table 2 ON ( table1.col1 = table2.col1 AND table2.col2 = 'n' )
FROM table1
LEFT JOIN table 2 ON ( table1.col1 = table2.col1 AND table2.col2 = 'n' )
Re: SQL WHERE AFTER JOIN Problem
SELECT * FROM
table1
LEFT OUTER JOIN .........................
table1
LEFT OUTER JOIN .........................