Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
É possível relacionar 4 tabelas onde uma delas não apresenta registros, e mesmo assim listar de uma tabela base?
tabela_pontos (4 registros) (tabela base onde irão ser listados os registros)
usuario (4 registros)
agenda (4 registro)
historico (0 registros)
é possível relacioná-las caso o histórico esteja sem registros? Pois até agora não consegui resolver este probleminha rsrs.
>
3 horas atrás, ESerra disse:
Como está a sua query? Em tese se você juntar com um left join, você terá os registros correlatos mesmo que uma das tabelas estejam em branco.
<?php
$id_user = 1; //vende um REQUEST (GET OU POST)
$p = "`tabela_pontos`";
$u = "`usuario`";
$a = "`agenda`";
$h = "`historico`";
//para simplificar coloquei as colunas em all (*)
$selecao = "" .
"SELECT
$p.*, $u.*, $a.*, $h.*
FROM
$a
INNER JOIN $u ON ($u.`id` = $a.`id_user`)
INNER JOIN $p ON ($p.`id_user` = $u.`id`)
INNER JOIN $h ON ($h.`id_user` = $u.`id`)
WHERE
$a.`id_user` = '{$id_user}'
AND
($a.`pontos` > 0 AND $p.`pontos` >= $a.`pontos`)
AND
($h.`status`= '0' AND $h.`tipo`='1')
ORDER BY
$a.`pontos`
DESC, RAND()
LIMIT
5";Na verdade acho que isso se aplicaria numa condicionalidade, pois a minha intensão é não mostrar registros que já estejam no histórico.
Por exemplo:
Tenho 4 registros na "tabela_1", caso 1 deles exista na tabela "historico" não exibi-lo, os outros 3 se mostrarão.
O problema é que se não existirem registros no histórico, não mostra nada.
Não sei se entendi bem a questão, mas creio que uma subquery no seu select deve ajudar.
SELECT
$p.*, $u.*, $a.*, $h.*
FROM
$a
INNER JOIN $u ON ($u.`id` = $a.`id_user`)
INNER JOIN $p ON ($p.`id_user` = $u.`id`)
WHERE
$a.`id_user` = '{$id_user}'
AND
($a.`pontos` > 0 AND $p.`pontos` >= $a.`pontos`)
AND
($h.`status`= '0' AND $h.`tipo`='1')
AND
$u.`id` NOT IN
(SELECT $h.id_user FROM $h)
ORDER BY
$a.`pontos`
DESC, RAND()
LIMIT
5
Veja se é isso mesmo que você precisa
Qualquer coisa é só avisar.RodriAndreotti só não te dou um beijo na boca por que sou hétero... mais fico lhe devendo favores rsrs...
Resolvido o problema!
>
20 minutos atrás, android17 disse:
RodriAndreotti só não te dou um beijo na boca por que sou hétero... mais fico lhe devendo favores rsrs...
Resolvido o problema!
Kkkkk
Dispenso o beijo também... kkkk
Relações a parte senhores, relações a parte...
kkkkkk
Como está a sua query? Em tese se você juntar com um left join, você terá os registros correlatos mesmo que uma das tabelas estejam em branco.