2012-05-09 6 views
0

私は4つのテーブルの中からmysqlを使ってデータを表示しようとしていますが、以下の4つのテーブルだけでなくカラムもすべてリストアップされています。4つのテーブルのデータを表示するには?

table1 = order_product 
Columns = order_product_id, order_id, product_id, name, price, total, tax, quantity 
table2 = product_to_category 
Columns - product_id, category_id 
table3 = category_description 
Columns - category_id, name 
table4 = category 
Columns - category_id, parent_id 

イムアイテムの-quantityが&販売
合計(カラム)(カラム)表1 &から各カテゴリの中 - 総量と共に表3から(カラム)-nameを表示しようとし次の4つのカテゴリのそれぞれ。
メインカテゴリが、これはある3つのサブカテゴリーを有し= 177が、
をCATEGORY_IDされ、CATEGORY_ID = 191192193
は全て3を表4にparent_category = 177を使用して、メインカテゴリにリンクされていますか?
私は、IVEが

+0

[SQL結合](http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html)について学んでください。 – eggyal

答えて

0

がこれを置くためにスリッカー方法があります任意の助けのためにこれより良い&提供に十分な詳細& THXを説明願っていますが、私はこのクエリは、あなたのために働くだろうと思います。

SELECT t3.name, t2.category_id, sum(t1.quantity), sum(t1.total) 
FROM table1 t1 
LEFT OUTER JOIN table2 t2 ON t1.product_id = t2.product_id 
LEFT OUTER JOIN table3 t3 ON t2.category_id = t3.category_id 
WHERE t2.category_id = 177 
OR t2.category_id IN (SELECT t4.parent_id FROM table4 t4 WHERE t4.category_id = 177) 
GROUP BY t3.name, t2.category_id 
+0

あなたの助けに感謝していますが、これは1行しか表示していません。表示した後は4行あります。 category_description =(name)であるメインカテゴリ(id = 177)の名前を示す一番上の行は、category_id = 191 + 192 + 193の総計(quantity&total)と続き、次にcategory_desciption =カテゴリテーブルのparent_id = 177を使用してメインcategory_id = 177にリンクされている各category_id = 191,192および193の合計(数量&合計)と同様に、191,192および193の名前 – harryo

関連する問題