我有三個表(product
,product_description
,product_store_description
)。即使連接數據爲空,Mysql如何返回行
產品
此表有一行
+----------+---------------------+
|product_id| description |
+----------+---------------------+
| 1 |'regular description'|
+----------+---------------------+
PRODUCT_DESCRIPTION
此表的行數爲零
+----------+-----------+--------+
|product_id|description|language|
+----------+-----------+--------+
product_store_description
This table has zero rows
+----------+-----------+--------+--------+
|product_id|description|language|store_id|
+----------+-----------+--------+--------+
我想對所有表WHERE product.product_id = '1'
返回.description
列。
因此,在這種情況下,我想輸出將
$row = $result->fetch_assoc();
echo '<pre>';
var_dump($row);
echo '</pre>';
array (size=3)
'p_description' => string 'regular description' (length=19)
'pd_description' => string '' (length=0)
'psd_description' => string '' (length=0)
我已經盡了SQL的許多變化,這是它如何矗立在那一刻。
SELECT p.description AS p_description ,pd.description AS pd_description, psd.description AS psd_description FROM product AS p
RIGHT JOIN product_description AS pd ON(pd.product_id = p.product_id)
RIGHT JOIN product_store_description AS psd ON(psd.product_id = p.product_id)
WHERE p.product_id = '1'
AND pd.language = 'en'
AND psd.language = 'en' AND psd.store_id = 1;
這將返回零行
...我已經尋找這導致我使用RIGHT JOIN
但這並沒有解決我的問題的答案。
我創建了示例表的SQL小提琴HERE,不幸的是我還沒有能夠得到任何人的工作答案。
說明字段必須具有相同的值嗎? (表的模式非常糟糕和冗餘) – MTroy
@MTroy:看起來像第二個表中的描述是依賴於語言的,在第三個表中它可以根據商店進一步進行本地化。如果不理解應用程序,您不應該對設計做出價值判斷。 – PaulF