2017-06-22 2 views
-1

J'essaie de sélectionner des données à partir de deux tables.
Dans la première table, je stocke du contenu dans la langue par défaut.
Les traductions de la deuxième table pour les données contenues dans le premier tableau.

Je souhaite récupérer une ligne pour une langue spécifique. Par exemple:
id, content, id_language, content_translation.
SELECT les données de deux tables avec plusieurs arguments

I, ai fait la requête comme ceci:

SELECT content_static.*, 
content_static_t.* 
FROM content_static 
LEFT JOIN content_static_t on content_static_t.parent_id = content_static.id 
WHERE content_static.id = 1; 

Il fonctionne très bien, mais quand j'ai 2 langues, il affiche deux lignes, chacune pour chaque langue.

Je souhaite afficher une seule ligne, uniquement pour une langue.
Je me demande également s'il est possible d'obtenir des données pour plusieurs ID de la table content_static uniquement dans la requête SQL.

http://sqlfiddle.com/#!9/fa076/2

-je ajouter à interroger l'état d'addition (ET content_static_t.language_id = '2'). Quand je mets l'argument à '2' ça va, mais quand je le mets à '4' je ne reçois aucune donnée. Dans ce cas, je ne dois afficher que les données de la table content_static.

+4

Quelle langue voulez-vous montrer? Fournir des exemples de données et les résultats souhaités. –

+0

Utilisez la clause distincte –

+2

vous recherchez probablement 'group_concat()' – Rahul

Répondre

-1

si vous utilisez la clé primaire dans l'instruction où il est très simple, il suffit d'utiliser TOP 1

SELECT TOP 1 content_static.*, content_static_t.* 
FROM content_static 
LEFT JOIN content_static_t on content_static_t.parent_id = content_static.id 
WHERE content_static.id = 1; 
-1

Il vous suffit forgotton d'ajouter la condition de la langue:

SELECT cs.*, cst.* 
FROM content_static cs 
LEFT JOIN content_static_t cst on cst.parent_id = cs.id AND cst.language_id = 4 
WHERE cs.id = 1; 

Modifiez ou supprimez la clause WHERE si vous souhaitez plus d'ID.

+0

Est-ce que la personne qui a déprimé cela me dit pourquoi? –