![](/img/trans.png)
[英]MySQL - subquery in WHERE unknown column in join (count in subquery)
[英]Unknown Column in subquery where contain INNER JOIN
我有 3 個表:
我打算在 tb_stok 表中顯示 transaction_id 列,旁邊還有一個名為 id_transaction 的列,其中包含數字序列 1、2、3 等等。 我試過這個 sql 代碼並設法生成了一個這樣的表:
SELECT @n := @n +1 id_transaksi, transaksi_id as kode_transaksi
FROM tb_stok, (SELECT @n := 0) m
WHERE tb_stok.tgl BETWEEN CAST('2018-01-07' AS DATE) AND
CAST('2018-01-08' AS DATE)
然后我打算使用這樣的子查詢顯示上面代碼的 result_transaction 中引用的 b2 的 nama_b2:
SELECT b2.nama_b2 AS nama_barang
FROM tb_stok INNER JOIN
tb_barang
ON tb_stok.kode_barang = tb_barang.kode_barang JOIN
b2
ON tb_barang.b2 = b2.b2_id
WHERE tb_stok.id_transaksi='1' IN
(SELECT @n := @n +1 id_transaksi, transaksi_id as kode_transaksi
FROM tb_stok, (SELECT @n := 0) m
WHERE tb_stok.tgl BETWEEN CAST('2018-01-07' AS DATE) AND
CAST('2018-01-08' AS DATE)
)
我收到錯誤
1054 - “where 子句”中的未知列“tb_stok.kode_transaksi”
什么是正確的代碼?
我認為這可以滿足您的需求:
SELECT b2.nama_b2 AS nama_barang
FROM tb_stok INNER JOIN
tb_barang
ON tb_stok.kode_barang = tb_barang.kode_barang JOIN
b2
ON tb_barang.b2 = b2.b2_id
WHERE tb_stok.id_transaksi ='1' AND
tb_stok.id_transaksi IN
(SELECT s2.transaksi_id
FROM tb_stok s2
WHERE s2.tgl BETWEEN '2018-01-07'AND '2018-01-08'
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.