Thread View: chile.comp.programacion
10 messages
10 total messages
Started by Rickoj
Fri, 04 Aug 2006 20:23
problema join con mysql
Author: Rickoj
Date: Fri, 04 Aug 2006 20:23
Date: Fri, 04 Aug 2006 20:23
26 lines
1913 bytes
1913 bytes
tengo las siguientes tablas CREATE TABLE `clientes` ( `rut` int(9) NOT NULL, `ap_paterno` varchar(50) NOT NULL, `ap_matern` varchar(50) NOT NULL, `nombres` varchar(100) NOT NULL, `compra` varchar(10) NOT NULL, UNIQUE KEY `rut` (`rut`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE `productos` ( `rut` int(9) NOT NULL, `items` varchar(1) NOT NULL, // otros campos// UNIQUE KEY `rut` (`rut`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; y la siguiente sentencia sql SELECT `ap_paterno`,`ap_matern`,`clientes`.`rut`,`items` FROM clientes c join productos p WHERE c.rut=p.rut and c.compra='efectuada' mysql responde "rut is ambigous" por que el rut es el mismo en ambas tablas se que si hago select * from.... funciona el asunto es que no me interesa rescatar los "otros campos", ahora podria rescatarlos y no despleglarlos pero no es la idea
Re: problema join con mysql
Author: Mauricio Gómez
Date: Fri, 04 Aug 2006 20:36
Date: Fri, 04 Aug 2006 20:36
37 lines
2033 bytes
2033 bytes
y c.rut en vez de clientes.rut en el select? rro Rick_oj escribi�: > tengo las siguientes tablas > CREATE TABLE `clientes` ( > `rut` int(9) NOT NULL, > `ap_paterno` varchar(50) NOT NULL, > `ap_matern` varchar(50) NOT NULL, > `nombres` varchar(100) NOT NULL, > `compra` varchar(10) NOT NULL, > UNIQUE KEY `rut` (`rut`) > ) ENGINE=MyISAM DEFAULT CHARSET=latin1; > > CREATE TABLE `productos` ( > `rut` int(9) NOT NULL, > `items` varchar(1) NOT NULL, > // otros campos// > UNIQUE KEY `rut` (`rut`) > ) ENGINE=MyISAM DEFAULT CHARSET=latin1; > > y la siguiente sentencia sql > SELECT `ap_paterno`,`ap_matern`,`clientes`.`rut`,`items` > FROM clientes c join productos p > WHERE c.rut=p.rut and c.compra='efectuada' > > mysql responde "rut is ambigous" por que el rut es el mismo en ambas tablas > se que si hago select * from.... funciona > el asunto es que no me interesa rescatar los "otros campos", ahora podria > rescatarlos y no despleglarlos pero no es la idea > > >
Re: problema join con mysql
Author: Mauricio Gómez
Date: Fri, 04 Aug 2006 20:37
Date: Fri, 04 Aug 2006 20:37
35 lines
2029 bytes
2029 bytes
y c.rut en vez de clientes.rut en el select? rro Rick_oj escribi�: > tengo las siguientes tablas > CREATE TABLE `clientes` ( > `rut` int(9) NOT NULL, > `ap_paterno` varchar(50) NOT NULL, > `ap_matern` varchar(50) NOT NULL, > `nombres` varchar(100) NOT NULL, > `compra` varchar(10) NOT NULL, > UNIQUE KEY `rut` (`rut`) > ) ENGINE=MyISAM DEFAULT CHARSET=latin1; > > CREATE TABLE `productos` ( > `rut` int(9) NOT NULL, > `items` varchar(1) NOT NULL, > // otros campos// > UNIQUE KEY `rut` (`rut`) > ) ENGINE=MyISAM DEFAULT CHARSET=latin1; > > y la siguiente sentencia sql > SELECT `ap_paterno`,`ap_matern`,`clientes`.`rut`,`items` > FROM clientes c join productos p > WHERE c.rut=p.rut and c.compra='efectuada' > > mysql responde "rut is ambigous" por que el rut es el mismo en ambas tablas > se que si hago select * from.... funciona > el asunto es que no me interesa rescatar los "otros campos", ahora podria > rescatarlos y no despleglarlos pero no es la idea > > >
Re: problema join con mysql
Author: Rickoj
Date: Fri, 04 Aug 2006 21:37
Date: Fri, 04 Aug 2006 21:37
42 lines
2285 bytes
2285 bytes
"Mauricio G�mez" <pregunte@sileinteresa.com> escribi� en el mensaje news:eb0dgi$2b6$1@news.nivel5.cl... >y c.rut en vez de clientes.rut en el select? pero c.rut no lo tomaria ya que el alias lo estoy escribiendo en el from a menos que vea con un as voy a intentar pero creo que ya lo hbaia hecho > rro > > > Rick_oj escribi�: >> tengo las siguientes tablas >> CREATE TABLE `clientes` ( >> `rut` int(9) NOT NULL, >> `ap_paterno` varchar(50) NOT NULL, >> `ap_matern` varchar(50) NOT NULL, >> `nombres` varchar(100) NOT NULL, >> `compra` varchar(10) NOT NULL, >> UNIQUE KEY `rut` (`rut`) >> ) ENGINE=MyISAM DEFAULT CHARSET=latin1; >> >> CREATE TABLE `productos` ( >> `rut` int(9) NOT NULL, >> `items` varchar(1) NOT NULL, >> // otros campos// >> UNIQUE KEY `rut` (`rut`) >> ) ENGINE=MyISAM DEFAULT CHARSET=latin1; >> >> y la siguiente sentencia sql >> SELECT `ap_paterno`,`ap_matern`,`clientes`.`rut`,`items` >> FROM clientes c join productos p >> WHERE c.rut=p.rut and c.compra='efectuada' >> >> mysql responde "rut is ambigous" por que el rut es el mismo en ambas >> tablas >> se que si hago select * from.... funciona >> el asunto es que no me interesa rescatar los "otros campos", ahora podria >> rescatarlos y no despleglarlos pero no es la idea >> >>
Re: problema join con mysql
Author: Andres E. Hernando
Date: Sat, 05 Aug 2006 00:53
Date: Sat, 05 Aug 2006 00:53
43 lines
2036 bytes
2036 bytes
In Fri, 4 Aug 2006 17:37:47 -0400, Rick_oj wrote: > > "Mauricio G�mez" <pregunte@sileinteresa.com> escribi� en el mensaje > news:eb0dgi$2b6$1@news.nivel5.cl... >>y c.rut en vez de clientes.rut en el select? > > pero c.rut no lo tomaria ya que el alias lo estoy escribiendo en el from > a menos que vea con un as > voy a intentar pero creo que ya lo hbaia hecho > Deberia funcionar igual. Tu problema es con el JOIN que esta incompleto (no tiene regla de como deben unirse los campos de ambas tablas). Segun san yo, debiera ser asi: SELECT `ap_paterno`,... FROM clientes c JOIN productos p ON c.rut=p.rut WHERE c.compra = 'efectuada'; Saludos, AHG. >>> y la siguiente sentencia sql >>> SELECT `ap_paterno`,`ap_matern`,`clientes`.`rut`,`items` >>> FROM clientes c join productos p >>> WHERE c.rut=p.rut and c.compra='efectuada' >>> >>> mysql responde "rut is ambigous" por que el rut es el mismo en ambas >>> tablas >>> se que si hago select * from.... funciona >>> el asunto es que no me interesa rescatar los "otros campos", ahora podria >>> rescatarlos y no despleglarlos pero no es la idea >>> >>> > -- Wanda the fish says: Hear that... the Pope's next pronouncement on birth control is to be titled "Paul's Epistle to the Fallopians"?
Re: problema join con mysql
Author: Jos� Miguel Santib��ez
Date: Sat, 05 Aug 2006 04:53
Date: Sat, 05 Aug 2006 04:53
41 lines
2735 bytes
2735 bytes
En el cap�tulo anterior (news:eb0aea$1bh$1@news.nivel5.cl), "Rick_oj" <rick_oj@[sin-esto]tutopia.com> dijo: > tengo las siguientes tablas > CREATE TABLE `clientes` ( > `rut` int(9) NOT NULL, > `ap_paterno` varchar(50) NOT NULL, > `ap_matern` varchar(50) NOT NULL, > `nombres` varchar(100) NOT NULL, > `compra` varchar(10) NOT NULL, > UNIQUE KEY `rut` (`rut`) > ) ENGINE=MyISAM DEFAULT CHARSET=latin1; > > CREATE TABLE `productos` ( > `rut` int(9) NOT NULL, > `items` varchar(1) NOT NULL, > // otros campos// > UNIQUE KEY `rut` (`rut`) > ) ENGINE=MyISAM DEFAULT CHARSET=latin1; > > y la siguiente sentencia sql > SELECT `ap_paterno`,`ap_matern`,`clientes`.`rut`,`items` > FROM clientes c join productos p > WHERE c.rut=p.rut and c.compra='efectuada' > > mysql responde "rut is ambigous" por que el rut es el mismo en ambas > tablas se que si hago select * from.... funciona > el asunto es que no me interesa rescatar los "otros campos", ahora > podria rescatarlos y no despleglarlos pero no es la idea > tu mismo te das la respuesta: el rut del select es el que causa ambiguedad (a�n cuando debieran ser iguales)... Por lo tanto debes decidir cual de los dos es el que quieres c.rut o p.rut (ya que tienes los alias, que dicho sea de paso, creo que no se justifican para nada, al igual que la palabra join, que reemplazar�a por una coma). -- Apoye a la campa�a de alfabetizaci�n y | Jose M. Santiba�ez A. ordenaci�n de las news, cada post en su | <jms@nivel5.cl> lugar y el lugar exacto para cada post | <http://caos.cl/jms>
Re: problema join con mysql
Author: Andres E. Hernando
Date: Sat, 05 Aug 2006 14:51
Date: Sat, 05 Aug 2006 14:51
24 lines
1785 bytes
1785 bytes
In 5 Aug 2006 00:53:38 -0400, "Jos� Miguel Santib��ez" wrote: > > tu mismo te das la respuesta: el rut del select es el que causa ambiguedad > (a�n cuando debieran ser iguales)... Por lo tanto debes decidir cual de los > dos es el que quieres c.rut o p.rut (ya que tienes los alias, que dicho sea > de paso, creo que no se justifican para nada, al igual que la palabra join, > que reemplazar�a por una coma). Que es mas eficiente? Hacer el producto cruz entre las tablas filtrando despues (i.e. FROM a,b WHERE a.xxx=b.xxx) o hacer el join entre ambas (i.e. FROM a JOIN b ON a.xxx=b.xxx)? Pregunto super en buena onda, yo fui a los cursos de bases de datos a puro machucar el membrillo (no es cierto, igual aprendi un buen poco de SQL, pero estas cosas, o se me escaparon, o las olvide una vez aprobado el curso). Saludos, AHG. -- Wanda the fish says: Our swords shall play the orators for us. -- Christopher Marlowe
Re: problema join con mysql
Author: Rickoj
Date: Sat, 05 Aug 2006 18:16
Date: Sat, 05 Aug 2006 18:16
50 lines
3162 bytes
3162 bytes
"Jos� Miguel Santib��ez" <jms.nospam@nivel5.cl> escribi� en el mensaje news:Xns9816122D877E0jmsnews@200.27.221.71... > En el cap�tulo anterior (news:eb0aea$1bh$1@news.nivel5.cl), "Rick_oj" > <rick_oj@[sin-esto]tutopia.com> dijo: > >> tengo las siguientes tablas >> CREATE TABLE `clientes` ( >> `rut` int(9) NOT NULL, >> `ap_paterno` varchar(50) NOT NULL, >> `ap_matern` varchar(50) NOT NULL, >> `nombres` varchar(100) NOT NULL, >> `compra` varchar(10) NOT NULL, >> UNIQUE KEY `rut` (`rut`) >> ) ENGINE=MyISAM DEFAULT CHARSET=latin1; >> >> CREATE TABLE `productos` ( >> `rut` int(9) NOT NULL, >> `items` varchar(1) NOT NULL, >> // otros campos// >> UNIQUE KEY `rut` (`rut`) >> ) ENGINE=MyISAM DEFAULT CHARSET=latin1; >> >> y la siguiente sentencia sql >> SELECT `ap_paterno`,`ap_matern`,`clientes`.`rut`,`items` >> FROM clientes c join productos p >> WHERE c.rut=p.rut and c.compra='efectuada' >> >> mysql responde "rut is ambigous" por que el rut es el mismo en ambas >> tablas se que si hago select * from.... funciona >> el asunto es que no me interesa rescatar los "otros campos", ahora >> podria rescatarlos y no despleglarlos pero no es la idea >> > > tu mismo te das la respuesta: el rut del select es el que causa ambiguedad > (a�n cuando debieran ser iguales)... Por lo tanto debes decidir cual de > los > dos es el que quieres c.rut o p.rut (ya que tienes los alias, que dicho > sea > de paso, creo que no se justifican para nada, al igual que la palabra > join, > que reemplazar�a por una coma). pero si elijo c.rut o p.rut continua entregando errores, lo que finalmente hice fue select * al final, y mostre en pantalla con $row_resultados['rut'] ahora lo del join es por que asi me lo ense�aron cuando vi bdd a�os atras, el alias es para no poner clientes.rut, se que no es la mejor sucion pero no se por que no me entrega el valor que deberia, si seleccionara solo `rut` es claro que responde ambiguo pero lo estoy seleccionando indicandole desde que tabla
Re: problema join con mysql
Author: Mauricio Gomez
Date: Sat, 05 Aug 2006 19:38
Date: Sat, 05 Aug 2006 19:38
43 lines
2134 bytes
2134 bytes
Rick_oj escribi�:
>
> pero si elijo c.rut o p.rut continua entregando errores, lo que finalmente
> hice fue select * al final...
Me piqu� :p
mysql> select * from clientes;
+-----+------------+-----------+----------+-----------+
| rut | ap_paterno | ap_matern | nombres | compra |
+-----+------------+-----------+----------+-----------+
| 111 | ap1 | am1 | nombres1 | |
| 222 | ap2 | am2 | nombres2 | efectuada |
+-----+------------+-----------+----------+-----------+
2 rows in set (0.00 sec)
mysql> select * from productos;
+-----+-------+
| rut | items |
+-----+-------+
| 111 | A |
| 222 | B |
+-----+-------+
2 rows in set (0.00 sec)
mysql> SELECT `ap_paterno`,`ap_matern`,c.`rut`,`items`
-> FROM clientes c join productos p
-> WHERE c.rut=p.rut and c.compra='efectuada';
+------------+-----------+-----+-------+
| ap_paterno | ap_matern | rut | items |
+------------+-----------+-----+-------+
| ap2 | am2 | 222 | B |
+------------+-----------+-----+-------+
1 row in set (0.00 sec)
mysql>
rro
Re: problema join con mysql
Author: Rickoj
Date: Sat, 05 Aug 2006 19:49
Date: Sat, 05 Aug 2006 19:49
45 lines
2489 bytes
2489 bytes
"Mauricio Gomez" <pregunte@sileinteresa.com> escribi� en el mensaje news:eb2s35$r31$1@news.nivel5.cl... > Rick_oj escribi�: >> >> pero si elijo c.rut o p.rut continua entregando errores, lo que >> finalmente hice fue select * al final... > > Me piqu� :p > > > mysql> select * from clientes; > +-----+------------+-----------+----------+-----------+ > | rut | ap_paterno | ap_matern | nombres | compra | > +-----+------------+-----------+----------+-----------+ > | 111 | ap1 | am1 | nombres1 | | > | 222 | ap2 | am2 | nombres2 | efectuada | > +-----+------------+-----------+----------+-----------+ > 2 rows in set (0.00 sec) > > mysql> select * from productos; > +-----+-------+ > | rut | items | > +-----+-------+ > | 111 | A | > | 222 | B | > +-----+-------+ > 2 rows in set (0.00 sec) > > mysql> SELECT `ap_paterno`,`ap_matern`,c.`rut`,`items` > -> FROM clientes c join productos p > -> WHERE c.rut=p.rut and c.compra='efectuada'; > +------------+-----------+-----+-------+ > | ap_paterno | ap_matern | rut | items | > +------------+-----------+-----+-------+ > | ap2 | am2 | 222 | B | > +------------+-----------+-----+-------+ > 1 row in set (0.00 sec) > > mysql> ahi ta la madre del cordero estaba intentando con `clientes`.`rut` claro que con la comilla rsulto sin ella arrojaba error como resultado como dije antes gracias
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads