Masalahnya adalah di mySQL operator koma memiliki prioritas yang lebih rendah daripada join operator, maka product inner join (subquery) on part.id = highestcost.partid inner join (subquery) on part.id = lowestcost.partid gabungan dievaluasi sebelum part tabel bergabung dalam ekspresi, maka pesan kesalahannya.
Ganti operator koma dengan join sederhana operator dan pindahkan kondisi bergabung dari where klausa ke on klausa dan semua akan baik-baik saja:
...
FROM vendor
inner join vendorparts on vendor.id = vendorparts.vendorid
inner join part on vendorparts.partid = part.id
inner join product on product.partid = part.id
INNER JOIN (SELECT vendorparts.partid,
Max(vendorparts.lastcost) AS Highestcost
FROM vendorparts
GROUP BY vendorparts.partid) AS highestcost
ON part.id = highestcost.partid
INNER JOIN (SELECT vendorparts.partid,
Min(vendorparts.lastcost) AS Lowestcost
FROM vendorparts
GROUP BY vendorparts.partid) AS lowestcost
ON part.id = lowestcost.partid
WHERE vendorparts.lastcost <> 0
Jika Anda memiliki lebih banyak kueri seperti itu di mana Anda mencampur operator koma dan gabungan eksplisit, maka Anda harus memeriksanya karena mereka dapat menghasilkan hasil yang berbeda meskipun tidak ada kesalahan sintaks di MySQL.