我想从多个表中显示一些数据但是我的查询出现了一些错误,仍然不知道在哪里修复它这是我的查询
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
我得到了一些错误,如
答案 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'