Se pueden hacer consultas a dos tablas ?
lo he puesto asi pero da error en msql:
| |||
Consulta a dos Tablas Se pueden hacer consultas a dos tablas ? lo he puesto asi pero da error en msql: Última edición por gnzsoloyo; 30/04/2013 a las 18:18 |
| |||
Respuesta: Consulta a dos Tablas lucasabogado, deberías decirnos qué tablas tienes, la estructura de las mismas, los tipos de campos, con ejemplos de datos y qué resultado quieres sacar. De ese modo sabríamos qué quieres buscar y sobre qué datos almacenados. Así podremos orientarte mejor. |
| ||||
Respuesta: Consulta a dos Tablas Vamos a ver si se entiende por qué te dije que esa consulta está muy mal escrita, y neecsitas volver a leer los manuales: - Primero dices que estás juntando dos consultas en una, cada una de las cuales funciona bien por separado. No puedes juntar dos consultas diferentes en una de cualquier forma. Sólo existen dos formas JOIN y UNION, y no estás usando ninguna.
Código MySQL:
Ver original - Luego, estás usando apóstrofos (') para el nombre de una tabla, lo que hace que MySQL lo tome como cadena de texto, y no como tabla. Los nombres de objetos pueden encerrarse con acentos agudos (`) no apóstrofos. - Estás usando un AND donde tal vez corresponda un UNION, pero un UNION requiere dos consultas con la misma cantidad de campos, del mismo tipo y en el mismo orden... y tu segundo SELECT no tiene ningún campo indicado. ¿Donde has visto un SELECT que no indique campos, al menos en forma general (*)? No existe eso. Lo mires por donde lo mires, esa consulta simplemente no funcionará y te devolverá error de sintaxis. Siempre. Para resolverlo: 1) Si quieres los resultados de la primera y agregados los de la segunda, ambas consultas deben unirse con UNION y deben invocar la misma cantidad de campos, del mismo tipo y en el mismo orden. 2) Si cada registro de la primera está relacionado con uno o más de la segunda tabla, debes usar JOIN, indicando qué campo de la primera se relaciona con qué campo de la segunda. Para eso necesitamos saber cómo es la estructura y relaciones de ambas tablas. El primer caso sería:
Código MySQL:
Ver original El segundo sería mas o menos:
Código MySQL:
Ver original Por supuesto, necesitamos mejor información para saber lo que hay que escribir, pero lo que te muestro ya te puede dar una idea de lo mal escrita que está tu consulta... Suerte. ![]() PD: Una sugerencia. Descarga el MySQL Workbench de la web oficial de MySQL y usalo para escribir las consultas. Tiene un analizador sintáctico que te marcará los errores que existan, lo que te evitará por lo menos este tipo de contingencias. Y usa el manual de referencia. Nadie conoce todo (no, tampoco nosotros), y todos usamos los manuales. Hasta los DBA con titulo y 20 años de experiencia... (yo no tengo tantos, pero tengo bastantes)
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) Última edición por gnzsoloyo; 01/05/2013 a las 07:32 |
| |||
Respuesta: Consulta a dos Tablas Os juro que es la primera vez que me meto con msql y sinceramente no tengo ni puñetera idea es más no tengo ni puñetera idea de como formular ni siquiera la pregunta solo sé que cuando escribo esto : $sRequest = " SELECT DISTINCT`post_title` FROM `wp_posts` WHERE post_status = 'publish' ORDER BY post_date DESC "; funciona correctamente creo que es la tabla wp-post de la que extraigo el titulo el cual esta publicado y en la segunda es la tabla sería mas o menos así : esta sola tambien me funciona correctamente $sRequest = " SELECT `meta_key` FROM `wp_postmeta` WHERE meta_value = 'alquiler' "; con lo cual el resultado de estas dos quisiera juntarlas para un solo resultado sería esto ??? SELECT DISTINCT`post_title` FROM `wp_posts` WHERE post_status = `publish` AND SELECT `meta_key` FROM 'wp_postmeta' WHERE meta_value = `alquiler` ORDER BY post_date DESC tampoco se la diferencia entre apóstrofes y comillas como en primera pregunta tenia apóstrofes y comillas y me funcionaba lo di por correcto muchas gracias |
| ||||
Respuesta: Consulta a dos Tablas En serio... ¿Leíste algo de lo que dije? Esto:
Código MySQL:
Ver original No funciona porque está mal escrito. Y te acabo de explicar punto a punto por qué está mal escrito y no te va a funcionar. Ahora bien, si como dices no tienes la más "puñertera" idea (te sugiero que moderes las expresiones, porque aquí participan de distintos países y no todo es correcto para todos), si no tienes ni idea, desde ya va a ser complicado ayudarte. Te sugiero antes de seguir avanzando que veas como mínimo en un manual básico de SQL los dos temas: JOIN (Articulo JOIN en Wikipedia) y UNION (UNION en Manual de referencia MySQL). SIn una noción básica de SQL, todo lo que te podamos argumentar te sonará a galimatías. Entiende que si estás programado, y necesitas usar consultas a bases de datos, como minimo se espera que conozcas las reglas básicas de SQL. De lo contrario será un problema tras otro, hasta que lo aceptes.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Consulta a dos Tablas Solo queria resolver este pequeño problema NO ir a la Universidad ademas ya no tengo edad para eso El niño : Papá te puedo hacer una pregunta ? El Padre : Pregunta pregunta si nó cómo vas a aprender !! Simple y llanamente es lo que yo quería además yo expongo una pregunta desde mi país y me da completamente igual si una palabra que aquí suena bien a los demás no les guste V.LUCAS |
| ||||
Respuesta: Consulta a dos Tablas Cita: El tema no es ir a la universidad, sino que si te vas a meter a desarrollar cosas que requieren un mínimo de conocimientos de cierto tema, tienes dos opciones: O te capacitas, o lo encargas a otro.Solo queria resolver este pequeño problema NO ir a la Universidad ademas ya no tengo edad para eso Y lo de la edad es un pretexto. En la facultad tuve compañeros de 65 años... Respecto a tu problema puntual, te recuerdo que el sentido de FDW es guiar para que puedas solucionar las cosas, pero no te regalaremos la solución. ´TE ayudaremos a entenderla y que lo puedas hacer. En el caso de tu consulta, ya te dije y expliqué por qué está mal y cómo debes hacer para resolverla. No te puedo dar una mejor consulta porque no nos has dicho qué relaciones hay entre las dos tablas, y esa relación no se puede deducir de la consulta mal escrita que intentas hacer. Y sin esa info.... No puedo estar seguro en este punto si la solución que buscas: 1) Existe (bien podría ser que intentes juntar caballos con manzanas). 2) Es un JOIN. 3) Es un UNION. Ergo, sin que nos des una mejor información respecto a qué relación hay entre ambas consultas, no hay muchas alternativas. Cita: Te recuerdo lo siguiente (Políticas de Uso): yo expongo una pregunta desde mi país y me da completamente igual si una palabra que aquí suena bien a los demás no les guste Cita: y además:1.1 El hecho de ignorar o desconocer las normas y políticas de Foros del Web, no exime a ningún usuario de su cumplimiento. Es obligación de todos los usuarios leer y adherirse a las normas aquí descritas y a las especificadas en cualquier otro foro, tema o categoría. Cita: Aunque a estas alturas, con 4 años de suscripto y más de 140 mensajes, supongo que ya debes saberlo. 2.10 Los usuarios deben usar un lenguaje cortés, respetuoso y gentil. (...)
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Consulta a dos Tablas lucasabogado, lo que queremos es ayudarte, de verdad, y los consejos de gnzsoloyo son los correctos y las preguntas las adecuadas. No podremos ayudarte sin saber cuál es la relación entre las tablas. Me explicaré: Tú escribes dos consultas select (he corregido parte del texto para que no te cause error, pero eso que parece ser una descripción no ayuda, porque no sabemos a qué se refiere), y yo entiendo que en la primera parte de la consulta pareces querer sacar los distintos títulos de posts de la tabla wp_posts cuyo estatus es publish. Bien, pero no entiendo bien qué datos hay en la tabla wp_postmeta, qué es ese campo meta_key, y sobre todo qué relación hay entre wp_posts y wp_postmeta. Si no nos aclaras eso no podremos concretarte si necesitas un INNER JOIN, LEFT JOIN, UNION o qué para unir los datos de esas tablas. Cuéntanos algo sobre los datos de esas tablas y la estructura de las mismas y sus relaciones, si es que las hay. SELECT DISTINCT post_title FROM wp_posts WHERE post_status = 'publish' AND SELECT meta_key FROM wp_postmeta WHERE meta_value = 'alquiler' ORDER BY post_date DESC |
Etiquetas: |