Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2005, 22:42
Avatar de ArrauKano
ArrauKano
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 21 años, 5 meses
Puntos: 4
Consulta OR excluyente en mi DB Mysql

Ya hice esta pregunta en Bases de Datos, pero como se que aki usan mucho Mysql, me decidi a preguntarles también. Es acerca de una consulta q me esta rompiendo al cabeza.

tengo una tabla con la siguiente estructura con 4 campos:
* lang_id (VARCHAR)
* s_context (VARCHAR)
* s_code (VARCHAR)
* sentence (TEXT)

la uso para recoger ciertas frases en el idioma q sea necesario.

el problema es q mi idea es recoger un listado de ciertas frases de igual contexto, teniendo en cuenta q los necesito en un idioma en especifico, pero de no existir algun registro en ese idioma, recoja los restantes en otro idioma que le llamo 0 (cero).

por ejemplo si los registros existentes fueran:

es | mod | 1 | Modulo n1
es | mod | 2 | Modulo n2
es | mod | 3 | Modulo n3
0 | mod | 1 | MOD 1
0 | mod | 2 | MOD 2
0 | mod | 3 | MOD 3
0 | mod | 4 | MOD 4

quiero que el resultado sea:

es | mod | 1 | Modulo n1
es | mod | 2 | Modulo n2
es | mod | 3 | Modulo n3
0 | mod | 4 | MOD 4

osea que me recoja todos los registros del mismo contexto donde si existe en el idioma pedido (en este caso español) sino, en el idioma 0.

con esta consulta:
Código:

Código:
SELECT * FROM site_sentences WHERE s_context = 'block' AND (lang_id = 'es' OR lang_id = '0')
logre hacer algo pero me recoge los registros de los 2 idiomas, no puedo excluir que cuando exista un registro en un idioma no recoja el registro existente con el idioma 0

¿como puedo hacerlo?, uso Mysql 4.0, pero me gustaría en lo posible que a consulta sirva en otras versiones de Mysql