| |||
Muevo el tema al foro de Base de datos para que te orienten sobre la consulta SQL que necesitas (estaría bueno más detalles sobre la estructura de tus tablas y más ejemplos de los datos que guardas en ellas). Un saludo, |
| |||
Dices que tienes un campo tipo: ids_noseque="23 44 54 67 53" Por qué no normalizas esas tablas tipo relación N <-> N en una tabla aparte: matriz id_matriz id_cliente id_posicion para que guarde ahí la relación entre los clientes y su posición .. sólo los ID. Así puedes recurrir a SQL 100% para hacer de forma más óptima tus consultas a tu BD. Guardar una serie de "datos" separados por algo (coma .. espacio) en un campo único de un registro está bien para "simplificar" tu "normalización" y si sólo lo usas poco más que para "registrar y leer" esos datos .. pero en el momento que empiezas a requerir de consultas basadas en esos datos .. es MEJOR que normalizes ese modelo de datos y lo lleves a un paso más de normalización .. por ejemplo el que te propongo. Si quieres ver más sobre normalización tienes este tutorial para que leas (ya sé que estás apurado .. pero si no diseñas bien la BD AHORA .. cada vez te vas a complicar más con lo que quieras hacer .. además que bajará el rendimiento de la aplicación cuando manejes más datos que los que tal vez de pruebas ahora estás usando). http://www.mysql-hispano.org/page.php?id=16 Un saludo, |
| ||||
igual me ahoga la idea de no saber como hacer una consulta del tipo: quiero todo de la tabla_1, tabla_2 donde tabla_1.id este incluido en el campo tabla_2.campo se entiende? no se por que aparece esta necesidad, pero cuando planifique la aplicacion ni por las tapas me imagine que necesitaria esto
__________________ w32.oktubre@mm <----------------<<<< prefiero cerrar la boca y parecer un tonto que abrirla y confirmarlo. |
| |||
Cita: Considero que esta solucion no es muy apropiada, puesto que tabla2.id tiene otros datos que pueden hacer coincidir la busqueda.
Iniciado por sism82 creo que tal vez esto pueda servir:
Código:
no estoy seguro, pero es una posibilidad....SELECT * FROM tabla1,tabla2 WHERE tabla1.id IN (tabla2.id) suerte Me explico mejor a ver si entendi tu requerimiento: tabla1.id = solo contiene el codigo del cliente tabla2.id = ademas del codigo del cliente, contiene otros valores. Pues bien, en tabla2.id si sabes en cual posicion y cuantos son los caracteres que corresponden al codigo del cliente, un substring es tu mejor alternativa. Ejemplo nombre tipo tamaño tabla1.id varchar 4 tabla2.id varchar 10 supongamos que en tabla2.id, el codigo del cliente esta desde el 3er caracter, 4 posiciones. select tabla1.id from tabla1 inner join tabla2 on tabla1.id=substring(tabla2.id,3,4) Prueba y nos avisas. |
| ||||
NO, EN REALIDAD EN TABLA_2.CAMPO_DE_IDS GUARDO VARIOS ID. es que tengo que permitirle a un usuario, ver datos de varios clientes, entonces se me ocurrio crear una tabla tabla_dos donde en un campo guardo " 23 24 34" que serian los id de la tabla_1 que pueden visualizar. tengo una pagina de informes donde mediante una consulta le permito ver el cliente Nº "23" o el "24 o el "34", necesito saber con que consulta puedo relacionar los datos. osea, priemero determino que el usuario "fruta" puede ver "24 23 34" y despues realizo una consulta contra la tabla clientes mostrandole los datos del cliente 23 24 y 34. se entiende=?
__________________ w32.oktubre@mm <----------------<<<< prefiero cerrar la boca y parecer un tonto que abrirla y confirmarlo. |