2つのテーブルの場合を考えてみましょう:tbl_product
とtbl_transaction
。
tbl_product
名前とIDを含む製品tbl_transaction
の詳細をリストし、製品に関連するトランザクションをリストし、日付、製品ID、顧客などをリストします。
10個の製品と、各製品について、過去5回のトランザクションを示すWebページを表示する必要があります。これまでのところ、クエリは機能していないようで、mysqlがその部分LEFT JOIN
を許可できれば、以下のサブクエリは機能します( 'where句'の不明な列'ta.product_id'で失敗します:[ERROR:1054])。tx.product_id=ta.product_id
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
ループ内で複数のクエリを使用せずに、必要なリストを作成する方法はありますか?
編集:
これはまさに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
もちろんこれは違法ですが、そうではなかったらいいのにと思います。