rree
上記のコードの最初のクエリでは、jobs
テーブルからすべての行を取得します。 2 番目のネストされたクエリでは、最初のクエリで返された jobsID
ごとに shift
テーブルからすべての行を取得しようとしています。しかし、データは得られません。データは存在しており、データが返されるはずですが、データを取得できません。ここで私は何を間違っているのでしょうか?助けてください!
P粉9795861592024-04-04 09:11:08
データがどのように返されるか、および 2 番目のクエリがどのように機能するかについて誤解があると思います。あなたによると: ###
複数の行が返されます。したがって、最初のクエリは機能します。ただし、複数の行を取得すると、rowss が
array になります。したがって、次のクエリの入力として使用される
rowss.jobsID は配列の正しい使用法ではありません。その式の値を
unknown にしたいのですが、これにより 2 番目のクエリが実行されます。コンテンツは返されません。
console.log(rowss) を追加します。
リーリー
この問題を解決するには、sql 関数を使用して
を発行することをお勧めします。これにより、データベースは 2 つのテーブルを結合し、where
条件を満たす行のみを返します。結合されたステートメントは次のようになります:
リーリー
ヒント:
および shift
のデータベース スキーマによっては、*
を展開して、## などのすべてのテーブル名を明示的にリストする必要がある場合があります。 #SELECT jobs.jobsID、jobs.<xyz>、shift.isBooked、shift.fk_job [...] FROM [...]。両方のテーブルに同じ名前の列がある場合、
SELECT [...] シフトのように列を結合して結果を返すときに、join
によって引き起こされる競合を解決する必要がある場合があります。 < ;xyz> として、shift_xyz [. ..]from...[]。
追加のボーナスとして、必要な SQL クエリは 2 つではなく 1 つだけです。