2014-09-01 4 views
0

J'ai deux table.Sélectionnez les données du tableau avec comparer deux tables

tableau d'une liste de noms

ID device_id 

1  2 

2  2 

3  4 

Tableau deux Nom synchronisation

ID devide_id list_id 

1  4   2 

Maintenant, si je veux sélectionner toutes les données de la table de liste pour devide_id puis deux rangs montré la cause table de synchronisation devide_id 4 ont un article.

Je suis en train cette requête

SELECT s.* 
FROM list AS s,sync AS sc 
WHERE s.device_id = 4 AND sc.device_id=4 AND sc.list_id=s.id 

Mais fonctionnent pas

résultat attendu

Pour device_id 4

ID device_id 

3  4 

2  2 

Pour device_id 2

ID device_id 

1  2 

2  2 
+0

Quel est le résultat attendu? –

+0

essayer avec 'INNER JOIN' – diEcho

+0

voir ma question de mise à jour @MKhalidJunaid – west

Répondre

1

La seule façon que je peux voir pour obtenir votre premier exemple est d'utiliser quelque chose comme ceci:

SELECT s.* 
FROM list AS s,sync AS sc 
WHERE s.device_id = 4 OR (sc.device_id=4 AND sc.list_id=s.id) 

(Note: non testé, peut avoir besoin de peaufinage)

parce que votre exemple eteint a l'ID de périphérique de 4 ou obtient l'ID de périphérique de 4 à partir de la table de synchronisation.

1

La façon dont vous avez posé la question est un peu difficile à comprendre. La façon dont je compris est,

Vous voulez récupérer toutes les données de la table Liste ayant une condition sur device_ID

Mais il y aura un seul enregistrement sera affiché en fonction de votre table.

Si c'est possible, veuillez réviser la question afin que nous puissions la comprendre facilement.

+3

Ceci ne fournit pas de réponse À la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire en dessous de son message - vous pouvez toujours commenter vos propres messages, et une fois que vous aurez suffisamment de [réputation] (http://stackoverflow.com/help/whats-reputation) vous pourrez être capable de [commenter sur n'importe quel post] (http://stackoverflow.com/help/privileges/comment). –

+1

Désolé. Je voulais en fait commenter, mais comme je n'ai pas 50 réputations, je ne peux pas commenter. C'est pourquoi je l'ai fait comme une réponse. – KingFeming

+0

@KingFeming vous ne devriez pas l'écrire comme une réponse si :(nous voulons essayer et garder des réponses comme des réponses et des commentaires comme des commentaires pour quand d'autres viennent pour obtenir une réponse –

Questions connexes