2013-02-03 40 views
0

選擇所以,我的表如下(每個表的主鍵是PhoneID,ManufacturerID和OSID外鍵都標有名稱前的星號。):需要從多個表

電話

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

廠商

ManufacturerID 
Name 
Details 
Telephone 

OS

OSID 
Name 
Company 
Description 

我需要做的是基本的查詢,將採取的製造商名稱和手機型號等細節,並顯示它。例如:

如果我有:

三星製造商排從廠商

銀河S3在模型行從電話

16GB的StorageSize行從電話

Android 4.2在名稱行中從OS

價格行中從499.99手機

我將如何構造查詢,使句子「三星Galaxy S3 16GB - Android 4.2版本 - £499.99?

對不起,冗長的職位,並感謝所有幫助/答案,我收到

回答

1

我將如何構造查詢,使句子「三星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

基本上你需要加入表,

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),您也可以在前端執行該句子。

爲了充分獲得知識約加盟,請訪問以下鏈接:

其他鏈接(補)

+0

哦,供應@Andomar查詢中的別名「S」選擇CONCAT(....)句子FROM ...'並在您的php腳本中複製'句子',以便顯示值。 –

+0

你的代碼在你的前端檢索這些行的代碼是什麼? –

+0

我的意思是你的'PHP'代碼。 –