0

因此,我的表如下(每个表中的主键是 PhoneID、ManufacturerID 和 OSID。外键在名称前标有星号):

电话

PhoneID
*ManufacturerID
Model
*OSID
Description
ScreenSize
Price
StockQuantity
StorageSize
Image
Thumbnail
IsFlagged

制造商

ManufacturerID
Name
Details
Telephone

操作系统

OSID
Name
Company
Description

我需要做的基本上是一个查询,它将获取制造商名称和手机型号以及其他详细信息并显示它。例子:

如果我有:

三星在制造商行中的制造

手机中的型号行中的 Galaxy S3

来自Phones的 StorageSize 行中的 16GB

操作系统名称行中的 Android 4.2

电话中的价格行中的 499.99

我将如何构建查询,以便句子“Samsung Galaxy S3 16GB - Android 4.2 - £499.99?

很抱歉这篇冗长的帖子,感谢我收到的任何帮助/答案

4

2 回答 2

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
于 2013-02-03T16:45:16.443 回答
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),您也可以在前端执行所有操作。

要全面了解联接,请访问以下链接:

其他链接

于 2013-02-03T16:45:33.010 回答