0

私は2つのテーブルを持っています

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

これらの2つのテーブルを。でリンクする必要があります。

idとuser_id。

食料品のCRUDでこれを行うにはどうすればよいですか。

4

2 に答える 2

3

OrdersTableプライマリテーブルとして使用している場合は、 set_relation()1:1を使用してリレーションシップを使用できます。これは、注文を表示していて、注文が属するユーザーを確認/設定したい場合です。

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

これにより、特定の注文のユーザーを選択できます。

ただし、おそらくユーザーは多くの注文-1:n関係を持っている可能性があります。これは、UsersTableがプライマリテーブルである場合、つまりuserCRUDでを表示していて、関連するすべての注文を表示したい場合に当てはまります。

この方法では、2つの既存のテーブルをリンクする中間テーブルと、既存のテーブル構造にわずかな変更を加える必要があります。user_idで削除する必要がありOrdersTableます。呼び出される引数のために、中間テーブルにUserOrdersTableは次の列が必要です。

user_id INT
order_id INT
priority INT

次に、 set_relation_n_n()メソッドを使用して関係を追加できます。

set_relation_n_n()次に、表示時に呼び出しを逆にして、OrdersTableどのユーザーが注文したかを確認できます。

要約すると、を使用する1:nリレーションシップを使用set_relation_n_n()すると、ユーザーによる注文と、注文のユーザーを表示できます。

于 2011-12-04T15:59:18.770 に答える
-1

クエリを意味する場合は、;

u.id、u.username、o.order_id、o.qty、o.totalを選択します
ユーザーからu
左参加注文oon(o.user_id = u.id)
ここで1=1
于 2011-12-04T07:45:04.783 に答える