Domanda

Ho 2 tavoli

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

Devo collegare queste due tabelle.

ID e user_id.

Come posso farlo con la drogheria CRUD.

È stato utile?

Soluzione

Se stai usando OrdersTable Come tabella principale, puoi usare un 1:1 relazione usando set_relation (). Questo sarebbe se stavi visualizzando un ordine e volessi vedere/impostare a quale utente appartiene l'ordine.

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

Ciò ti consentirà di selezionare quale utente per un ordine particolare.

Tuttavia, presumibilmente un utente può avere molti ordini: a 1:n relazione. Questo sarebbe il caso se userstable è la tua tabella principale, cioè stai visualizzando un user Nel greggio e voglio vedere tutti gli ordini associati.

Questo metodo richiede una tabella intermedia, con cui collega le due tabelle esistenti e una leggera modifica alla struttura della tabella esistente. Dovresti rimuovere user_id nel OrdersTable. La tabella intermedia, per motivi di argomento chiamato UserOrdersTable richiederebbe le seguenti colonne.

user_id INT
order_id INT
priority INT

È quindi possibile aggiungere la relazione usando il set_relation_n_n () metodo.

Puoi quindi invertire il set_relation_n_n() Chiama quando viene visualizzata il file OrdersTable Quindi puoi vedere quale utente ha fatto un ordine.

Per riassumere, a 1:n relazione usando set_relation_n_n() Ti consentirà di visualizzare gli ordini da parte di un utente e di un utente per un ordine.

Altri suggerimenti

Se intendi query, allora;

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top