2009-09-22 179 views
1

我正在尋找在創造這種情況下正確的SQL一些幫助......幫助與SQL查詢

兩個表型號和序列號簡化

Model 
----- 
CODE | MAKE | MODEL 

Serials 
------- 
CODE (FK) | SERIAL 

我要檢索的代碼,請與SERIAL其中MAKE =「某個值」 我只希望不同碼雖然...

+0

你正在使用哪個數據庫? – Quassnoi 2009-09-22 13:50:17

回答

1
select distinct code, make, model from model inner join code on model.code = serials.code where model = 'some value'; 
1

不知道如果這是你的意思,但你嘗試過:

SELECT DISTINCT code, make, serial 
FROM model, serials 
WHERE model.code = serials.code 
AND make = 'some value' 
0
select distinct Model.Code 
from Model JOIN Serials on Model.Code = Serials.Code 
where make = 'some value' and Serials.Serial not null 

其他答案閱讀後評論編輯。

0

假設代碼是PRIMARY KEY(否則,你不能讓一個FK你所提到的):

SELECT code, make, 
     (
     SELECT serial 
     FROM serials 
     WHERE serials.code = model.code 
     LIMIT 1 
     ) 
FROM model 
WHERE MAKE = 'some value' 

這是MySQL語法。

您需要定義在有幾個連續字符串並將ORDER BY子句添加到子查詢中時要顯示哪個串行。

如果你有這樣的數據:

code make   model 
123 SOME VALUE Ford Sierra 

code serial 
123 1 
123 2 

,你要顯示串行12爲什麼?

+0

我會試試這個。無關緊要返回什麼序列號我只需要檢查每個代碼的序列號的最後幾位數 – db83 2009-09-22 13:47:13

1

你的表似乎被設置的方式會有多個序列中的每行代碼行,不是嗎?如果是這樣,沒有辦法獲得單個代碼的連續代碼,而沒有爲該代碼獲取多個行。這是你的意思,只有獲得不同的代碼?如果是這樣,你不能這樣做......但其他...

try this: 

Select Code, Make, Serial 
From Model M 
    Join Serials S 
    On M.code = S.code 
Where Make = 'some value' 
+0

對於具有不同SERIALS的相同CODE號,有很多條目。我只是希望所有不同的代碼像一個樣本SERIAL我不關心什麼是SERIAL返回 – db83 2009-09-22 13:45:52