Pregunta

Tengo 2 tablas

Users Table => id , username
OrdersTable => order_id,user_id, qty,total

Necesito vincular estas dos tablas.

ID y user_id.

¿Cómo puedo hacer esto con el supermercado?

¿Fue útil?

Solución

Si estás usando OrdersTable Como su tabla principal, puede usar un 1:1 relación usando set_relation (). Esto sería si estuviera viendo un pedido y quisiera ver/establecer a qué usuario pertenece el pedido.

$crud->set_table('OrdersTable');
$crud->set_relation('id','UsersTable','username');

Esto le permitirá seleccionar qué usuario para un pedido en particular.

Sin embargo, presumiblemente un usuario puede tener muchos pedidos: 1:n relación. Este sería el caso si Userstable es su tabla principal, es decir, está viendo un user en el crud y quiero ver todas las órdenes asociadas.

Este método requiere una tabla intermediaria, con la cual vincula las dos tablas existentes, y un ligero cambio a la estructura de su tabla existente. Necesitarías eliminar user_id en el OrdersTable. La tabla intermediaria, por el argumento llamado UserOrdersTable requeriría las siguientes columnas.

user_id INT
order_id INT
priority INT

Luego puede agregar la relación usando el set_relation_n_n () método.

Entonces puedes revertir el set_relation_n_n() Llame para ver el OrdersTable Para que pueda ver qué usuario hizo un pedido.

Para resumir, un 1:n relación usando set_relation_n_n() le permitirá ver los pedidos de un usuario y un usuario para un pedido.

Otros consejos

Si te refieres a la consulta, entonces;

select u.id, u.username, o.order_id, o.qty, o.total
from users u
left join orders o on(o.user_id = u.id)
where 1=1
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top