数据库查询错误未知列

时间:2015-03-23 08:36:35

标签: mysql sql

我想从多个表中显示一些数据但是我的查询出现了一些错误,仍然不知道在哪里修复它这是我的查询

SELECT stok.harga_jual, 
produk.nama_produk, 
produk.idkategori, 
produk.deskripsi, 
produk.foto, 
pengiriman.nama, 
pengiriman.alamat, 
pengiriman.kodepos, 
pengiriman.id_kota, 
delivery.nama AS shipment, 
delivery.harga AS biaya_pengiriman, 
transaksi.jumlah, 
transaksi.noinvoice FROM transaksi RIGHT OUTER JOIN produk ON transaksi.idproduk = produk.idproduk
 LEFT OUTER JOIN pengiriman ON pengiriman.noinvoice = transaksi.noinvoice
 RIGHT OUTER JOIN delivery ON delivery.id_delivery = pengiriman.id_delivery
 LEFT OUTER JOIN stok ON stok.idproduk = produk.idproduk WHERE transaksi.noinvoice = E0001 

我得到了一些错误,如

1054 - 'where子句'

中的未知列'E00001'

2 个答案:

答案 0 :(得分:1)

SELECT stok.harga_jual, 
       produk.nama_produk, 
       produk.idkategori, 
       produk.deskripsi, 
       produk.foto, 
       pengiriman.nama, 
       pengiriman.alamat, 
       pengiriman.kodepos, 
       pengiriman.id_kota, 
       delivery.nama AS shipment, 
       delivery.harga AS biaya_pengiriman, 
       transaksi.jumlah, 
       transaksi.noinvoice
FROM transaksi
  RIGHT OUTER JOIN produk ON transaksi.idproduk = produk.idproduk
                          AND transaksi.noinvoice = 'E0001'
  LEFT OUTER JOIN pengiriman ON pengiriman.noinvoice = transaksi.noinvoice
  RIGHT OUTER JOIN delivery ON delivery.id_delivery = pengiriman.id_delivery
  LEFT OUTER JOIN stok ON stok.idproduk = produk.idproduk

请注意我是如何将WHERE transaksi.noinvoice = 'E0001'条件移动到ON子句的。 (如果WHERE子句中有这样的外表条件,则OUTER JOIN作为常规INNER JOIN执行!)

答案 1 :(得分:0)

似乎您在''值上遗漏了E0001。应为'E0001'

完整代码:

SELECT stok.harga_jual, 
produk.nama_produk, 
produk.idkategori, 
produk.deskripsi, 
produk.foto, 
pengiriman.nama, 
pengiriman.alamat, 
pengiriman.kodepos, 
pengiriman.id_kota, 
delivery.nama AS shipment, 
delivery.harga AS biaya_pengiriman, 
transaksi.jumlah, 
transaksi.noinvoice FROM transaksi RIGHT OUTER JOIN produk ON transaksi.idproduk = produk.idproduk
 LEFT OUTER JOIN pengiriman ON pengiriman.noinvoice = transaksi.noinvoice
 RIGHT OUTER JOIN delivery ON delivery.id_delivery = pengiriman.id_delivery
 LEFT OUTER JOIN stok ON stok.idproduk = produk.idproduk WHERE transaksi.noinvoice = 'E0001'