小编edd*_*edu的帖子

如何限制LEFT JOIN的结果

以两个表为例:tbl_producttbl_transaction.
tbl_product列出产品详细信息,包括名称和ID,同时tbl_transaction列出涉及产品的交易,包括日期,产品ID,客户等.

我需要显示一个显示10个产品和每个产品的网页,最后5个交易.到目前为止,没有LEFT JOIN查询似乎工作,如果mysql可以允许该tx.product_id=ta.product_id部分,下面的子查询将起作用(在'where子句'中出现未知列'ta.product_id'失败:[错误:1054]).

SELECT  
ta.product_id,  
ta.product_name,  
tb.transaction_date  
FROM tbl_product ta  
LEFT JOIN (SELECT tx.transaction_date FROM tbl_transaction tx WHERE tx.product_id=ta.product_id LIMIT 5) tb
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

有没有办法实现我需要的列表,而无需在循环中使用多个查询

编辑:
这正是我需要的MySQL:

SELECT ta.product_id, ta.product_name, tb.transaction_date ...  
FROM tbl_product ta  
LEFT JOIN tbl_transaction tb ON (tb.product_id=ta.product_id LIMIT 5)  
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

当然这是非法的,但我真的希望不是!

mysql sql subquery left-join mysql-error-1054

18
推荐指数
1
解决办法
5万
查看次数

标签 统计

left-join ×1

mysql ×1

mysql-error-1054 ×1

sql ×1

subquery ×1