Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/07/2010, 15:16
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 8 meses
Puntos: 1517
Problema con INNER JOIN

Saludos:

Estoy creando una aplicación que al accederla automáticamente debe traer los datos que se van a manejar. Decidí crear dos tablas, una que contiene la información y la otra que guarda quién está trabajando en algún caso. La idea es que cuando una persona reciba el caso, si otra persona se loguea continúe con otro caso, todo esto de forma automática. Ejemplo
Código MySQL:
Ver original
  1. mysql> show create table tabla1;
  2.  
  3. | tabla1 | CREATE TABLE `tabla1` (
  4.   `id` int(11) NOT NULL AUTO_INCREMENT,
  5.   `name` varchar(30) DEFAULT NULL,
  6.   PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 |
  8.  
  9. 1 row in set (0.00 sec)
  10.  
  11. mysql> INSERT INTO tabla1 VALUES (NULL, 'foo'), (NULL, 'bar'), (NULL, 'baz');
  12. Query OK, 3 rows affected (0.00 sec)
  13. Records: 3  Duplicates: 0  Warnings: 0
  14.  
  15. mysql> SELECT * FROM tabla1;
  16. +----+------+
  17. | id | name |
  18. +----+------+
  19. |  1 | foo  |
  20. |  2 | bar  |
  21. |  3 | baz  |
  22. +----+------+
  23. 3 rows in set (0.00 sec)
  24.  
  25. mysql> show create table tabla2;
  26. | tabla2 | CREATE TABLE `tabla2` (
  27.   `id` int(11) NOT NULL AUTO_INCREMENT,
  28.   `id_tabla1` int(11) NOT NULL,
  29.   PRIMARY KEY (`id`)
  30. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
  31.  
  32. 1 row in set (0.00 sec)
  33.  
  34.  
  35. mysql> select * from tabla2;
  36. Empty set (0.00 sec)

Cuando hago esta consulta
Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla1 t INNER JOIN tabla2 tt ON tt.id_tabla1 != t.id;
  2. Empty set (0.00 sec)
El problema es como tabla2 no tiene datos no muestra la información. Pero si coloco un dato de ahí en adelante funciona y me muestra los datos que no están en la tabla2. Hay alguna forma de lograr que cuando no haya datos en la tabla2 pueda mostrar entonces los datos de la tabla1. Con PHP sé como hacerlo con condiciones, primero verifico si hay datos en la tabla2 y con un else logro mostrarlo. Traté de hacerlo con el IF de mysql pero al parecer no sé como trabajar con un IF verificando la consulta

Edito:
Si hay otra forma "más mejor" me dejan saber.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 14/07/2010 a las 15:25