繁体   English   中英

需要从多个表中进行选择

[英]Need to select from multiple tables

所以,我的表如下(每个表中的主键是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行中的16GB

来自OS的Name行中的Android 4.2

来自电话的价格行中的499.99

我将如何构建查询,使句子“三星Galaxy S3 16GB - Android 4.2 - £499.99?

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

我将如何构建查询,使句子“三星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

基本上你需要加入表格,

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 ),你也可以在你的前端做到这一点。

要充分了解联接知识,请访问以下链接:

其他链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM