需要帮助我的查询选择加入条件

时间:2018-09-26 16:32:03

标签: mysql

SELECT tb_pemesanan_detail.id_pemesanan
, tb_pemesanan_detail.id_produk
, tb_pemesanan_detail.qty
, tb_produk.harga_produk
, tb_pemesanan.nama_pemesan
, tb_pemesanan.id_meja
, tb_pemesanan.bayar as tagihan 
FROM tb_pemesanan_detail
,b_produk
,tb_pemesanan 
WHERE tb_pemesanan_detail.id_produk = tb_produk.id_produk 
and tb_pemesanan.id_pemesanan = tb_pemesanan_detail.id_pemesanan 
and id_pemesanan = 'TR000000018'

2 个答案:

答案 0 :(得分:0)

您的两个Tabkle中都有id_pemesanan,但在这种情况下您没有分配表名

    SELECT tb_pemesanan_detail.id_pemesanan
        , tb_pemesanan_detail.id_produk
        , tb_pemesanan_detail.qty
        , tb_produk.harga_produk
        , tb_pemesanan.nama_pemesan
        , tb_pemesanan.id_meja
        , tb_pemesanan.bayar as tagihan 
    FROM tb_pemesanan_detail ,tb_produk,tb_pemesanan 
    WHERE tb_pemesanan_detail.id_produk = tb_produk.id_produk 
    and tb_pemesanan.id_pemesanan = tb_pemesanan_detail.id_pemesanan 
    and tb_pemesanan_detail .id_pemesanan = 'TR000000018'

并建议不要使用(旧的)隐式连接sintax,而应使用显式连接,
并使用表名别名,例如:

SELECT a.id_pemesanan
    , a.id_produk
    , a.qty
    , b.harga_produk
    , c.nama_pemesan
    , c.id_meja
    , c.bayar as tagihan 
FROM tb_pemesanan_detail a 
INNER JOIN tb_produk b ON a.id_produk = b.id_produk 
INNER JOIN tb_pemesanan  c ON c.id_pemesanan = a.id_pemesanan 
WHERE  a.id_pemesanan = 'TR000000018'

答案 1 :(得分:0)

最后一栏是您的问题

sql查询的最后一列缺少

tb_pemesanan_detail。

id_pemesanan不明确,因为它没有前缀的表引用。

将id_pemesanan更改为tb_pemesanan_detail.id_pemesanan 或tb_pemesanan.id_pemesanan