2009-09-22 12 views
1

Je cherche un peu d'aide à la création du SQL correct pour ce scénario ...Aide requête SQL

Deux Modèle de table et Feuilletons simplifié

Model 
----- 
CODE | MAKE | MODEL 

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

Je veux récupérer le CODE, ET FAIRE SERIAL où l'MAKE = « une valeur » Je veux que les codes distincts mais ...

+0

Quelle base de données utilisez-vous? – Quassnoi

Répondre

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

Je ne sais pas si c'est ce que vous voulez dire, mais avez-vous essayé:

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 

Modifier après avoir lu un commentaire sur autre réponse.

0

est un code en assumant que PRIMARY KEY (sinon, vous ne pouvez pas faire un FK vous avez mentionné):

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

C'est MySQL syntaxe.

Vous devez définir quelle série vous voulez afficher lorsque vous avez plusieurs publications en série pour un code et d'ajouter une clause ORDER BY en sous-requête.

Si vous avez ces données:

code make   model 
123 SOME VALUE Ford Sierra 

code serial 
123 1 
123 2 

, voulez-vous montrer série 1 ou 2 et pourquoi?

+0

je vais essayer ça. peu importe quelle est la série retournée J'ai juste besoin de vérifier les derniers chiffres de la série pour chaque code – db83

1

La façon dont vos tables semblent être configurées ici sera plusieurs lignes dans les publications en série pour chaque code, non? Si oui, il n'y a aucun moyen d'obtenir tous les séries pour un seul code sans obtenir plusieurs lignes pour ce code. Est-ce ce que vous vouliez dire en n'obtenant que des codes distincts? Si oui, vous ne pouvez pas faire cela ... mais sinon ...

try this: 

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

Il y a beaucoup d'entrées pour le même CODE avec différentes SERIES. Je veux juste tous les codes distincts avec comme un échantillon SERIAL je ne suis pas préoccupé par ce que SERIAL est retourné – db83