我想做的是运行查询来显示所有产品 客户可能有折扣(当他们登录时)或者它只使用标准条款定价:
表格是:
产品
想要显示全部
制造商、产品范围、网页代码、描述、供应商代码、价格、增值税等
standardTermsPricing
(不包含任何用户 ID)
供应商,供应商代码,金额
供应商折扣
供应商(供应商代码),用户,金额
产品折扣
用户,
产品(网络代码),金额``
我知道用户 y127 正在某种级别上工作,但如果我尝试使用 z999,则该 z999 不在表 sellerdiscounts 或 ProductDiscounts 中,因此没有结果。
我当前的 select 语句并没有真正起作用,它得到了一些结果,但不是我想要的......有什么想法吗?
最终结果我使用 PHP mysqli_query 循环结果以显示给客户并导出 CSV 文件 - 但这是另一个问题!!
非常感谢,伊恩
SELECT
p.name,
p.manufacturer,
p.productRange,
p.webcode,
p.description,
p.supplierCode,
p.priceExVat,
stp.amount 'standard discount amount',
sd.amount 'supplier discount amount',
pd.amount 'product discount amount',
sd.user
FROM
products p
JOIN standardTermsPricing stp ON p.supplierCode = stp.supplierCode
JOIN supplierdiscounts sd ON p.supplierCode = sd.supplier
JOIN productDiscounts pd ON p.webcode = pd.product
WHERE sd.user = 'Y127'
最佳答案
JOIN
与 INNER JOIN
相同,因此仅返回匹配的组合。如果您想要所有行,并且当折扣表中没有匹配行时,您需要例如 LEFT JOIN
:
...
FROM
products p
INNER JOIN standardTermsPricing stp
ON p.supplierCode = stp.supplierCode
LEFT JOIN supplierdiscounts sd
ON p.supplierCode = sd.supplier
LEFT JOIN productDiscounts pd
ON p.webcode = pd.product
WHERE sd.user = 'Y127'
关于php - Mysql - 如果值不存在,则使用另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55355671/