rreeee
Dalam pertanyaan pertama kod di atas, saya mendapat semua baris daripada jobs
表中获取所有行。在第二个嵌套查询中,我试图从 shift
表中获取第一个查询返回的每个 jobsID
. Tetapi saya tidak mendapat sebarang data. Data itu ada dan ia sepatutnya mengembalikan data tetapi saya tidak mendapat sebarang data. Apa yang saya buat salah di sini? tolong bantu!
Saya rasa terdapat salah faham tentang cara data dikembalikan dan cara pertanyaan kedua berfungsi. Menurut anda:
Anda akan mengembalikan berbilang baris. Jadi pertanyaan pertama berfungsi. Tetapi mendapatkan semula berbilang baris akan menghasilkan
rowss
成为array
。因此,用作下一个查询的输入的rowss.jobsID
不是数组的正确使用,我希望该表达式的值是undefined
, yang akan menyebabkan pertanyaan kedua tidak mengembalikan apa-apa.Untuk membuktikan tambah
console.log(rowss)
seperti ini:Untuk menyelesaikan masalah ini, saya cadangkan menggunakan fungsi sql dan memancarkan
join
。通过这样做,数据库将连接两个表,然后仅返回满足where
baris keadaan. Pernyataan gabungan sepatutnya kelihatan seperti ini:Tips: Berdasarkan
ob's
和shift
的数据库方案,您可能需要扩展*
并显式列出所有表名称,例如SELECT jobs.jobsID、jobs.<xyz>、shift.isBooked、shift.fk_job [...] FROM [...]
。如果两个表中都有相同名称的列,则可能需要解决由join
引起的冲突,同时组合列以返回结果,如下所示:SELECT [...] shift.<xyz> as shift_xyz [. ..]来自...[]
.Satu lagi kelebihan, anda juga hanya memerlukan satu pertanyaan SQL dan bukannya dua.