2017-11-04 59 views
0

我有一個名爲superstore和4個表的數據庫。 enter image description here如何從兩個表中獲取信息?

-- Q5: Pull all the order details of Product 
-- (ID: 657768) got sold at a discount rate of 0.06 
SELECT * FROM superstore.orders JOIN 
superstore.product ON 
superstore.orders.ProductID=superstore.product.ProductID 
WHERE 
superstore.product.ProductID='657768' AND Discount='0.06'; 

這將返回一個空記錄。我該如何解決它?

+0

你不需要圍繞數字字段單引號 - 但mysql應該做一個隱式轉換。嘗試刪除連接以查看是否從訂單單獨返回任何內容,然後向產品添加左連接以查看是否從產品重新生成null。 –

回答

0
SELECT * 
FROM Product p 
JOIN Orders o ON o.ProductID = p.ProductID 
WHERE 
    p.ProductID = '657768' AND 
    Discount = 0.06; 
0

在SELECT查詢中使用列名而非「*」使用列名非常重要,因爲如果您的表有數千個記錄,則它變得很慢。

SELECT 
    p.ProductID,p.ProductName,p.ProductCategory,p.ProductSubCategory, 
    p.ProductContainer,p.ProductBaseMargin 
    FROM Product p 
    JOIN Orders o ON o.ProductID = p.ProductID 
    WHERE p.ProductID = '657768' AND o.Discount=0.06