Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Comprobar si existe un dato en varias tablas

Estas en el tema de Comprobar si existe un dato en varias tablas en el foro de Mysql en Foros del Web. Oigan, creo que mi problema es sencillo: Tengo dos tablas en mi base de datos tabla X y tabla Y y quiero saber si el ...
  #1 (permalink)  
Antiguo 11/03/2015, 15:37
Avatar de gamersav1822  
Fecha de Ingreso: enero-2015
Mensajes: 10
Antigüedad: 9 años, 10 meses
Puntos: 0
Comprobar si existe un dato en varias tablas

Oigan, creo que mi problema es sencillo:
Tengo dos tablas en mi base de datos
tabla X y tabla Y
y quiero saber si el dato D existe en alguna de ellas.
que tipo de consulta utilizo y el posterior codigo php que me devuelva un booleano de false si no lo encuentra y true si lo encuentra
  #2 (permalink)  
Antiguo 11/03/2015, 16:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Comprobar si existe un dato en varias tablas

Cita:
creo que mi problema es sencillo:
Es sencillo... de manual, o más bien de tutorial básico.
Cita:
y quiero saber si el dato D existe en alguna de ellas.
Ajá... pero no sabemos como son las relaciones entre las tablas, qué vincula a esas tablas con el dato. Qué tipo de datos es...

Pero hay un par de cosas primero:
1) ¿Qué relaciona una tabla con otra?
2) ¿Qué consultas intentaste? Asumo que al menos intentaste UNA.
3) Lo que hagas en PHP es OFF TOPIC en este foro. No es relevante para nosotros, porque en los foros de BBDD sólo tratamos el problema de SQL. El uso que luego hagas de la consulta en PHP es tema del foro de PHP.

Postea al menos la estructura de las tablas, la relación que existe entre ambas y alguna consulta que hayas intentado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/03/2015, 16:30
Avatar de gamersav1822  
Fecha de Ingreso: enero-2015
Mensajes: 10
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Comprobar si existe un dato en varias tablas

Tengo dos tablas llamadas descargasalmacenamientonube y noticiasargentina

en las dos tienen los mismos 3 campos : id, descripcion y paginas

no tienen relación alguna

intente este tipo de consulta:
Código MySQL:
Ver original
  1. SELECT  descargasalmacenamientonube.paginas,  
  2. descargasalmacenamientonube.id,
  3. noticiasargentina.paginas, noticiasargentina.id  
  4. FROM  descargasalmacenamientonube, noticiasargentina
  5. WHERE paginas = '$pagina'

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.

Última edición por gnzsoloyo; 11/03/2015 a las 16:52
  #4 (permalink)  
Antiguo 11/03/2015, 16:53
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Comprobar si existe un dato en varias tablas

2 tablas con los mismos campos???? que es eso??? y sin relacion??? entonces como saber si el dato realmente existe???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 11/03/2015, 17:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Comprobar si existe un dato en varias tablas

En primer lugar, tienes que recordar que el DBMS no puede adivinar cuál es la relación entre ambas tablas. SQL es un lenguaje imperativo, por lo que sólo puede hace lo que expresamente le indicas, y en este caso no estás indicand cuál es el campo que relaciona ambas tablas entre si.
Al no hacerlo, MySQL intentará relacionar entre si aquellos campos de cada tabla que tengan el mismo nombre, y como es muy habitual, le pusiste en ambas tablas un identificador con el sólo nombre de "ID", por lo que intentará cruzar ambas columnas, con resultados inconsistentes.

En definitiva, hay que pulir eso y definir qué campo relaciona ambas, si es que lo has relacionado. Eso sin contar con que sería mejor que pusieras alias a esa tablas con nombres kilométricos.

Ahora bien, según dices, no existe relación entre ambas tablas, lo que en definitiva sería un error de diseño, porque en ese caso tienes un esquema de tablas replicadas, que puede dar resultados funestos. La verdad deberías analizar mejor el diseño de tu base...

En tu caso, no se puede usar JOINs, sino UNION, no queda otra alternativa:
Código MySQL:
Ver original
  1. SELECT  DAN.paginas,  DAN.id
  2. FROM  descargasalmacenamientonube DAN
  3. WHERE DAN.paginas = '$pagina'
  4. SELECT NA.paginas, NA.id  
  5. FROM noticiasargentina NA
  6. WHERE NA.pagina = '$pagina'

Finalmente: Lee el link que te paso. No se permite código de programación en los foros de Bases de Datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 11/03/2015, 17:30
Avatar de gamersav1822  
Fecha de Ingreso: enero-2015
Mensajes: 10
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Comprobar si existe un dato en varias tablas

ahhhh, error de diseño jeje, muchas gracias, me resolviste muchas dudas de mysql, gran trabajo :D

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:10.