Menurut tautan ini
, Anda tidak boleh mencampuradukkan kedua notasi saat membangun gabungan. Koma yang Anda gunakan untuk bergabung dengan memebers as m, telephone as t
, dan panggilan berikutnya ke inner join
, memicu kesalahan kolom tidak dikenal.
Untuk mengatasinya, gunakan CROSS/INNER/LEFT JOIN
bukannya koma.
Sebelumnya, operator koma (,) dan JOIN keduanya memiliki prioritas yang sama, sehingga ekspresi join t1, t2 JOIN t3 diinterpretasikan sebagai((t1, t2) JOIN t3). Sekarang JOIN memiliki prioritas yang lebih tinggi, sehingga ekspresi diinterpretasikan sebagai (t1, (t2 JOIN t3)). Perubahan ini memengaruhi pernyataan yang menggunakan klausa ON, karena klausa tersebut hanya dapat merujuk ke kolom dalam operan gabungan, dan perubahan prioritas mengubah interpretasi operan tersebut.
Untuk tujuan pedagogis, saya menambahkan kueri karena, menurut saya, seharusnya:
SELECT m.*, t.*
FROM memebers as m
JOIN telephone as t
JOIN memeberFunctions as mf ON m.id = mf.memeber AND mf.function = 32
JOIN mitgliedTelephone as mt ON m.id = mt.memeber
Karena Anda tidak bergabung dengan t
dan m
, hasil akhirnya adalah produk kartesius; Anda mungkin ingin direvisi.
Semoga membantu.