SELECT varias tablas

  • Autor Autor cooply
  • Fecha de inicio Fecha de inicio
C

cooply

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas , estoy atrancado en una parte del código que no termino de entender.
Tengo varias tablas con distintos nombres pero con mismos campos, no tiene nada que ver una tabla con la otra, son independientes.
Algo asi:

tabla1
id
user
titulo

tabla2
id
user
titulo

Necesito obtener en la misma consulta los datos de las dos tablas pero no lo consigo, lo intento con INNER JOIN, UNION ALL, pero al no saber, lo aplico mal.

Ahora mismo tengo esto, pero no me devuelve nada:

PHP:
$consulta= $db->QueryFetchArrayAll("
(SELECT * from tabla1
where user='1')
UNION ALL
(SELECT * from tabla2
where user='1')");

Ojala alguien pueda ayudarme,
Un saludo y gracias.
 
Última edición:
Intenta con:
PHP:
$sql = "SELECT * FROM (
				SELECT * FROM tabla1
			UNION
				SELECT * FROM tabla2
		) t
		WHERE user = 1;";

Nota: Deben de tener exactamente el mismo número de campos y los mismos nombres las 2 tablas, sino no te va a funcionar. En caso de tener distinto número de campos y/o distintos nombres tendrías que poner los campos que quieres seleccionar y ponerle alias para que quedaran del mismo número de campos y mismos nombres ambas.

Saludos.
 
Buenas [MENTION=8317]lombervid[/MENTION] , he puesto esto pero sigue sin mostrarme nada, sabes porque podría ser?

PHP:
<? $mysites = $db->QueryFetchArrayAll("
SELECT * FROM
 (SELECT active,clicks,id FROM twitter UNION
  SELECT active,clicks,id FROM fb_photo )
 WHERE user = 1");

$x = 1;
foreach($mysites as $mysite){
$x++;
?>
<tr>
<td><?=number_format($mysite['active'])?></td>
<td><?=number_format($mysite['clicks'])?></td>
<td><?=number_format($mysite['id '])?></td>
</tr>}

Gracias.
 
Última edición:
Intenta nombrando la unión, esa t que puse después del cierre del paréntesis te la unión no era nada más de adorno. :welcoming:

PHP:
<?php
	$mysites = $db->QueryFetchArrayAll("SELECT * FROM (
												SELECT active,clicks,id FROM twitter
											UNION
					  							SELECT active,clicks,id FROM fb_photo
					  					) t
					 					WHERE user = 1;");
?>
 
Última edición:
[MENTION=8317]lombervid[/MENTION] ya la he colocado pero nada.. sigue sin mostrar ningun dato,

En el foreach deberia de poner la t esa también en algún lado?
Gracias por ayudarme, un saludo.
 
Y estás seguro que el método que estás llamando si funciona bien? También puedes probar la consulta directamente en MySQL a ver si funciona o para ver que error te sale.

Saludos.
 
Última edición:
Muchisimas gracias lombrevid, llevo todo el dia liado, pero gracias a ti acabo de resolverlo.

Dejo el problema que al final era una tonteria, pero es por culpa mia y de mi desconocimiento, tu código estaba perfecto, el problema radicaba en el cotejamiento en la base de datos, en una tabla, el campo active era utf8_general_ci y en la otra, el campo active era utf8_unicode_ci.

Los he colocado los dos en utf8_general_ci, y ya funciona correctamente.

Muchisimas gracias por tu ayuda y tiempo.
Hoy he aprendido algo nuevo 😀

Saludos!!
 
Atrás
Arriba