1

次の関数に問題があります。それは私が思うに参加するだけです。SQLステートメント「SELECT * FROM pkw」を使用して、結果を取得しました。両方のテーブルにデータが入力されています。間違いがわかりますか?

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');
}
4

1 に答える 1

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

于 2013-01-18T19:19:50.797 に答える