FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
unir 2 consultas con campos diferentes..
hola que tal
eh estado tratando de unir dos consultas con campos diferentes, leyendo manuales y libros pero no e podido dar con el problema. bueno primero es la pregunta se puede haser esto. tengo dos tablas: clientes proveedores quiero unir los dos campos de los nombres de cada tabla. que me aparesca: "nombre nombre" en el resultado nombre_cliente nombre_proveedor ------------------------------------- juan telmex pepe movistar pacheco unefon algo asi. se puede hacer esto? con este me da un resultado de repedidos todos los cliente scon todos los proveedores entonses enseguida intente una union. pero no se pueden unir por que me pone los dos campos en uno solo bueno gracias saludos |
#2
|
||||
|
||||
La clave está en cómo quieres relacionarlos. Es decir, tu quieres unir un nombre de cliente con un nombre de proveedor, pero ¿tendrás algun campo que relaciones las dos tablas no? Lo lógico sería:
(a) En la tabla cliente un código de proveedor (o similar) (b) En la tabla proveedor, un código de cliente (o similar) Se trata de hacer la consulta que has puesto, pero utilizando un JOIN por el campo de union entre ambas tablas.
... o similar
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
gracias por responder
pero la duda que tengo es poner campos que no tengan nada que ver entre si como si fueran dos o tres consultas pero que me las despliegue como si fueran campos de una tabla, pero que en realidad son campos de tablas diferentes tengo tablas: articulos clientes proveedor cada tabla tiene su campo nombre que es el nombre de articulo,cliente,proveedor. lo cual quiero desplegar, cada uno de los campos pero juntos por ejemplo en un grid articulo cliente proveedor ------------------------------ leche pepe movistar paste juan telmex pan ruperto unefon tornillo jose miguel lolo edgar asi mas omenos que no tengan que ver unos con lo otros como si fueran tres select a tres tablas pero poder mosrarlar en un grid jutnos asi como arriba. se podra? por que si hago un procedure que me ejecute los tres select no me los pone juntos. saludos gracias |
#4
|
||||
|
||||
bueno reafirmando la tabla antes puesta como que no se bio bien
haber si con el quote no se recorren los espacios Cita:
|
#5
|
||||
|
||||
Creo que deberías mirar de hacerlo con una tabla temporal, porque con una consulta no acabo de verlo claro.
Crear la tabla temporal y añadir los registros de cada tabla a una columna. El problema es que al no tener relación entre tablas, siempre te va a realizar el producto cartesiano entre las tablas y te van a salir registros repetidos (como ya has comentado)
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. Última edición por Neftali [Germán.Estévez] fecha: 30-09-2005 a las 09:50:33. |
#6
|
||||
|
||||
gracias de nuevo
ya intente hacer una tabla temporal haciendo varios insert con su determinado select pero el problema que tengo es que si son varios me los va metiendo pero me va dejando espasion null por que primero me hace uno y despues el otro. despues quise probar con un procedure el primero si me lo inserte los de mas con update para los campos que esten e null me los actulize el problema que el update tiene que ser referencia a algo. entonses me quede en las mismas otraves =S ppor que si dejo ai la tabla con los null ahora me meto en otra cuestion quitar en una consulta en esa tabla los repetidos de cada columna asi no ahi problema pero asi:
no se puede =S |
#7
|
|||
|
|||
pues bue,...
opino lo mismo que el compañero Neftali. Debes de tener un campo que te relacione las tablas, sino nunca le vas a poder unir los datos. Te recomiendo que leas un poco sobre Base de Datos Relacionales y Las Formas Normales, para que logres comprender realmente como relacionar las tablas por medios de un campo. Como tu dices, quizas las tablas sean totalmente distintas y no tengan nada que ver, pero un campo las puede relacionar. Ejemplo: Tabla Articulo ID_Art, ID_Marca, Precio Tabla Marca ID_Marca, ID_Proveedor, Tabla Proveedor ID_Proveedor,Direccion, Telefono, Estado, Mail Tabla Clientes N.Cliente, ID_Articulo, nombre, direccion, telefono ahi podrias hacer una consulta donde te dijera: El Cliente "X" compro el Articulo "Y" correspondiente a la Marca "Q" con precio "Z", vendida por el porveedor "L" Select N.cliente,ID_Articulo, nombre, ID_Art, ID_Marca.Articulo, ID-Marca.Marca,Precio,ID_Proveedor.Marca,ID_Proveedor.Proveedor from Articulo, Marca, Proveedor, Clientes Where ID_Articulo = ID_Art and ID-Marca.Marca=ID-Marca.Articulo And ID_Proveedor.Marca=ID_Proveedor.Proveedor cuando aplicas las formas normales en la creacion de tus tablas, estaras depurando tu tabla y salvandola de la repeticion innecesaria de datos, solo con un identificador puedes hacer referencias a otros datos en lugar de almacenar miles de veces el mismo dato en distintas tablas. Espero haberte orientado un poco, se que no te resolvi tu duda, pero creo que tu problema viene desde la raiz, desde lo fundamental que son las Formas Normales. Saludos |
#8
|
||||
|
||||
Cita:
articulo___cliente____proveedor ------------------------------ leche______pepe_______movistar paste _____juan_______telmex pan _______ruperto ___unefon ... Se trataría de hacer un recorrido por las tres tablas a la vez y realizar el INSERT de la primera, algo así:
Y luego los dos updates de las siguientes:
De todas formas como te he dicho , no le veo sentido a ésto, ya que no tienen ningun órden. Las tablas deberían estar relacionadas, sino lo único que consigues es una mezcla de datos sin sentido.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
|