2010-03-15 47 views
0

我有一個MySql數據庫。 SQL SELECT加入?

有產品和訂單的 結構的表:

  • 產品:PRODUCT_ID,名稱,manufacturers_id
  • 訂單:orders_id,PRODUCT_ID,數量現在

我想要獲得所有訂單(僅顯示產品manufacturer_id = 1的產品)。 我試過了:

SELECT 
orders.orders_id, 
orders.product_id 
FROM products, orders 
WHERE products.manufacturers_id = 1 
GROUP BY orders_id 
ORDER BY orders_id 

但是這不起作用。怎麼了?

Sry基因編輯:別人編輯我的支柱端刪除的問題的essentiell部分

編輯

爲了澄清我的問題,我增加了一些新的信息:

我有一個MySQL的DB與MyISAM表。這兩個相關的表是:

  • orders_products:orders_products_id,orders_id,PRODUCT_ID,PRODUCT_NAME,PRODUCT_PRICE,PRODUCT_NAME,product_model,final_price,...
  • 產品:products_id,manufacturers_id,...

(有關表格的完整信息見截圖的產品(Screenshot)和截圖orders_products(Screenshot))

現在我想是這樣的: - 獲取所有訂購產品與manufacturer_id = 1的訂單。以及此訂單的產品的產品名稱(與manufacturer_id = 1)。按訂單分組。

我做什麼,到目前爲止是這樣的:

SELECT 
op.orders_id, 
p.products_id, 
op.products_name, 
op.products_price, 
op.products_quantity 
FROM orders_products op , products p 
INNER JOIN products 
ON op.products_id = p.products_id 
WHERE p.manufacturers_id = 1 AND 
p.orders_id > 10000 

p.orders_id> 10000進行測試,以得到只有少數的order_id的。 但是如果查詢甚至有效,查詢需要很長時間才能執行。 兩次sql server被困住了。 錯誤在哪裏?

因爲混亂的關於我的編輯我打開一個新的更容易理解的職位: SQL Inner Join : DB stuck

+0

您使用的是什麼RDBMS? – 2010-03-15 12:35:29

+2

它頂部是「MySQL」。 – 2010-03-15 12:36:07

+0

您說「product_id = 1,但是您的查詢顯示manufacturer_id = 1 ...需要澄清哪一個是正確的 – 2010-03-15 12:46:04

回答

2

應該這樣做!

SELECT 
*.orders 
FROM orders INNER JOIN products 
ON orders.product_id = products.product_id 
WHERE products.manufacturers_id =1 
ORDER BY orders_id 
+0

我完全看不到你從哪裏得到「AND products.manufacturers_id = 38」,從 – 2010-03-15 12:41:22

+0

LOL,用戶更新它,它曾經是38只幾分鐘前,我剛剛更新了我的相關內容,因爲它現在看起來不正確:-) – 2010-03-15 12:45:19

+0

太棒了,我使用編輯:形式當我更新我的問題,使這種事情更合理。 – 2010-03-15 12:50:26

1

最簡單的方法是:

SELECT * FROM Orders WHERE product_id = 1 
+0

+1:對於給定的查詢語句,連接是不必要的。很顯然,如果產出需要製造商或某些東西,那麼就需要加入 - 但並非如此。 – 2010-03-15 12:49:03

+0

我需要所有產品和訂單ID在哪裏products.manufacturers_id = 1 – SurfingCat 2010-03-15 12:54:23

+0

@SurfingCat,好的,但這不是你原來的問題說的;-) – 2010-03-15 12:56:21

0

WHERE products.manufacturers_id = 1 AND products.product_id = orders.product_id

,如果你想加入這兩個表這就是。除此之外,您還請求product_od而不是product_id

+0

od和id現在已修復...在該職位 – SurfingCat 2010-03-15 12:47:16