2015-12-23 4 views
1

Мой вопрос находится в инструкции SELECT, которая извлекает SQlite databse.Как установить два условия WHERE в SQLite select statement?

Предположим, у меня есть следующий Table1: ref_no, имя, Дата_начала

Предположим также, у меня есть Table2: ref_no, оплата

Я хочу, чтобы выбрать table2.ref_no, table2.payment, table1.start_date и table1.name где table2.payment равна нулю и где table2.ref_no равным table1.ref_no, отсортированным по table2.ref_no

Я пробовал:

SELECT ref_no.Table1, name.Table2, tel.Table2 
FROM Table1, Table2 
WHERE payment.Table1 IS NULL OR 
     payment.Table1 = ' 
ORDER BY ref_no.Table2 
WHERE table1.ref_no = table2.ref_no 

, но не успех ..

+0

Научитесь использовать правильный явный 'JOIN' синтаксис. –

ответ

3

Я хочу, чтобы выбрать table2.ref_no, table2.payment, table1.start_date и table1.name где table2.payment равна нулю и где table2.ref_no равно table1.ref_no отсортировано по table2.ref_no

Использование JOIN вместо синтаксиса разделителями и изменить порядок table_name.column_name:

SELECT Table2.ref_no, Table1.name, Table2.payment, table1.start_date, Table2.tel 
FROM Table1 
JOIN Table2 
    ON Table1.ref_no = Table2.ref_no 
WHERE Table2.payment IS NULL 
    OR Table2.payment = ' ' 
    -- explicit search for space maybe you want '' (empty string) 
ORDER BY Table2.ref_no 


Для читаемость хорошая практика, чтобы добавить псевдонимы:

SELECT t2.ref_no, t1.name, t2.payment, t1.start_date, t2.tel 
FROM Table1 AS t1 
JOIN Table2 AS t2 
    ON t1.ref_no = t2.ref_no 
WHERE t2.payment IS NULL 
    OR t2.payment = ' ' 
ORDER BY t2.ref_no 
+1

Спасибо .. это самый объяснительный ответ, который я когда-либо получал .. и он работает –