2009-09-22 139 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