首先,我有这样的数据库:
和关系:
现在在.php我想创建表格,显示表格中的所有内容,但不是将ProductId和UpgradeProductId显示为数字,我想将它们显示为产品名称
问题是我该怎么办?我已经做到了
它就像这样出现了
我希望[UpgradeProductId]像[ProductId]一样作为产品名称出现,但我不知道如何编写它以连接SQL并得到结果。
我希望我能正确理解你的问题。
显示UpgradeProductId的ProductName的简单方法是列的SELECT语句。声明如下:
SELECT UpgradeId, Productname, (SELECT Product.ProductName FROM Product WHERE Product.ProductId = Upgrade.UpgradeProductId), UpgradeDate, UpgradeDetail
FROM Upgrade
INNER JOIN Product ON Upgrade.ProductId = Product.ProductId
INNER JOIN RepairMan ON Upgrade.RepairManId = RepairMan.RepairManId
WHERE Upgrade.RepairManId = '$RepairManId'
ORDER BY UpgradeId ASC
但我想,这不是最有效的解决方案。
要对连接执行相同操作,必须为连接的表使用别名。它看起来像这样:
SELECT UpgradeId, P1.Productname, P2.Productname, UpgradeDate, UpgradeDetail
FROM Upgrade
INNER JOIN Product AS P1 ON Upgrade.ProductId = P1.ProductId
INNER JOIN Product AS P2 ON Upgrade.UpgradeProductId = P2.ProductId
INNER JOIN RepairMan ON Upgrade.RepairManId = RepairMan.RepairManId
WHERE Upgrade.RepairManId = '$RepairManId'
ORDER BY UpgradeId ASC
除此之外的另一件事。我不知道您正在使用哪个SQL,但请确保在ORDER命令中添加ASC或DESC。如果没有这种添加,某些类型的SQL往往不按预期排序。