我有下面的查詢返回產品和最低的賣出價格與銷售價格的數量。一切工作都很完美,直到我想要在product_price表中找不到任何價格的產品。我怎樣才能讓它返回產品數據和NULLS售價和數量?連接SQL查詢問題
SELECT p.*, MIN(pp.sellPrice) as sellPrice, pp.quantity FROM `product` as p
LEFT JOIN `product_price_group` as ppg ON ppg.productId = p.`id`
LEFT JOIN `product_price` as pp ON pp.priceGroupId = ppg.`id`
WHERE p.`id` = 1 AND p.`active` = 1
輸出有一個可用的價格的產品:一個產品的
+----+--------------+--------+--------------+--------------+-----------+----------+
| id | name | active | sortSequence | creationDate | sellPrice | quantity |
+----+--------------+--------+--------------+--------------+-----------+----------+
| 1 | product_id_1 | 1 | 1 | 1287481220 | 22.00 | 10 |
+----+--------------+--------+--------------+--------------+-----------+----------+
輸出沒有avaialble定價
+----+------+--------+--------------+--------------+-----------+----------+
| id | name | active | sortSequence | creationDate | sellPrice | quantity |
+----+------+--------+--------------+--------------+-----------+----------+
| NULL | NULL | NULL | NULL | NULL | NULL | NULL |
+----+------+--------+--------------+--------------+-----------+----------+
所需的輸出:
+----+--------------+--------+--------------+--------------+-----------+----------+
| id | name | active | sortSequence | creationDate | sellPrice | quantity |
+----+--------------+--------+--------------+--------------+-----------+----------+
| 2 | product_id_2 | 1 | 1 | 1287481220 | NULL | NULL |
+----+--------------+--------+--------------+--------------+-----------+----------+
更新 看來,我選擇上不存在的產品項目!非常愚蠢。
MySQL *和* TSQL標籤?我的意思是,你沒有「GROUP BY」子句,所以它是MySQL,但是你必須用TSQL標記它嗎? – 2011-04-13 11:01:28
在桌子上出現了一些光學錯覺。對任何人來說,這些線條看起來都很彎曲? ; -D – 2011-04-13 11:03:29
我爲MySql中的表和數據創建了一個最小模式的最佳猜測版本,當我執行查詢時,我得到了我期望的(以及你希望看到的),所以顯然我做了一個不正確的猜測一個或多個表(或其中的數據)的適當模式。您能否提供關於您正在查看的架構,關係廣告數據的一些指導? – cori 2011-04-14 04:19:36