2013-01-18 24 views
1

我已經與下列功能的問題。它只是我認爲的加入。通過使用sql語句「SELECT * FROM pkw」,我得到了結果。兩個表都充滿了數據。 你看到的錯誤?爲什麼SQLite JOIN不工作?

function gotoauftrag(id) { 
    db = window.sqlitePlugin.openDatabase(shortName, version, displayName,maxSize); 
    var list = ''; 
    var sql = "SELECT DISTINCT p.name FROM pkw p INNER JOIN ta_pkw tp ON tp.pkw_id = p.pkw_id AND tp.ta_id = ?"; 
    db.transaction(function (tx) { 
        tx.executeSql(sql, [id], function (tx, results) { 
           if (results.rows.length > 0) { 
           document.getElementById('auftrag_pkw').innerHTML = ''; 
           for (i = 0; i < results.rows.length; i++) { 
            r = results.rows.item(i); 
            list = '<li>'+r['name']+'<span class="ui-li-count">1</span></li>'; 
           document.getElementById('auftrag_pkw').innerHTML += list; 
           $('#auftrag_pkw').listview('refresh'); 
           } 
           } 
           }); 
        }); 
$('#auftrag_pkw').listview('refresh'); 
} 
+0

難道沒有加入或沒有'ta_id'過濾器工作的呢? –

回答

0

我不相信你能夠綁定到JOIN謂詞。嘗試使用WHERE子句代替。

SELECT DISTINCT 
    p.name 
FROM pkw p 
INNER JOIN ta_pkw tp 
    ON tp.pkw_id = p.pkw_id 
WHERE 
    tp.ta_id = ? 

此外,您可能應該在加入前做ta_id選擇。上面的代碼將做pkw_id自然連接,那麼它會篩選基於ta_id結果。