因此,我的表格如下(每个表中的主键是PhoneID,ManufacturerID和OSID。外键在名称前标有星号):
电话
PhoneID
*ManufacturerID
Model
*OSID
Description
ScreenSize
Price
StockQuantity
StorageSize
Image
Thumbnail
IsFlagged
制造商
ManufacturerID
Name
Details
Telephone
OS
OSID
Name
Company
Description
我需要做的基本上是一个查询,它将获取制造商名称和手机型号以及其他详细信息并显示它。例如:
如果我有:
来自制造商
的制造商行中的三星来自电话
的模型行中的Galaxy S3 来自电话 的StorageSize行中的<16> 16GB来自操作系统
的名称行中的Android 4.2 电话 的价格行中的499.99
如何构建查询以使句子“Samsung Galaxy S3 16GB - Android 4.2 - £499.99?
对于这篇冗长的帖子感到抱歉,感谢我收到的任何帮助/答案
答案 0 :(得分:1)
我将如何构造查询以使句子“Samsung Galaxy S3 16GB - Android 4.2 - £499.99?
select concat(m.Manufacturer, ' ', p.Model, ' ', p.StorageSize, ' - ',
o.Name, ' - ', p.Price)
from Phones p
join Manufacturer m
on p.ManufacturerID = m.ManufacturerID
join OS o
on p.OSID = o.OSID
答案 1 :(得分:1)
基本上你需要加入表格,
SELECT a.*, b.*, c.* -- select only the columns you want.
FROM Phones a
INNER JOIN Manufacturer b
ON a.ManufacturerID = b.ManufacturerID
INNER JOIN OS c
ON a.OSID = c.OSID
-- WHERE .... put the condition here ...
如果您希望在查询中生成句子,也可以使用CONCAT(或CONCAT_WS),您也可以在前端执行此操作。
要充分了解联接知识,请访问以下链接:
其他链接