我正在尝试创建一个PHP脚本,以使用卖家名称(product_seller)在表格中插入/更新数据。
问题
我不知道要使用什么mysql查询来获取:
所有产品的清单无论卖家是否有,如果卖家有产品给我详细信息(ID,PRODUCT_NAME,product_seller,价格)。
我想得到的例子:
1 - 苹果 - 卖家A - 12
2 - 香蕉 - -
3 - 油 - -
4 - DVD - 卖方A - 25
product_name必须为DISTINCT
提前致谢!
*查询必须类似于“SELECT DISTINCT product_name FROM Products,让我知道卖家A有产品的地方,价格是多少,什么产品是什么产品WHERE seller_name ='卖家A'......但是,向我展示所有产品,无论卖家有没有“
答案 0 :(得分:1)
似乎是一个直接的子查询,可以获得唯一的产品列表,然后是外部联接以获取卖家信息。
SELECT A.ID, A.Product_name, B.product_Seller, B.Price
FROM (SELECT DISTINCT ID, Product_Name FROM products) A
LEFT JOIN Products B
on A.ID = B.ID
and B.product_Seller = 'seller A'
LEFT JOIN将确保您返回与“卖方A”项目相关的所有产品和卖方信息
SQL通常在数据SETS上运行得最好。因此,我首先生成一组唯一的ID和产品,然后将其连接到您想要的卖家产品数据。左连接确保我们保留所有项目。卖方的过滤必须在JOIN本身而不是在where子句中。否则左连接本质上变成内部,因为从外连接生成的NULLS被删除。
SELECT A.ID, A.Product_name, B.product_Seller, B.Price
FROM (SELECT DISTINCT ID, Product_Name FROM products) A
LEFT JOIN Products B
on A.ID = B.ID
WHERE B.product_Seller = 'seller A'
无法获得理想的结果。这是因为在连接之后应用了where子句,因此将排除与卖方无关的项目。由于您需要这些记录,您必须使用左连接并在JOIN上应用限制,以便返回与卖家无关的项目。
当我最初使用SQL时,我遇到了这种类型的逻辑问题。直到我用“SETS”来考虑数据以及这些集合是如何相关的,如何解决这些问题变得更加容易。
答案 1 :(得分:0)
尝试使用
SELECT * FROM Products_Table;
这将获得所有表值