Вопрос

У меня есть 2 стола

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

Мне нужно связать эти две таблицы.

id и user_id.

Как я могу сделать это с продуктовом Crud.

Это было полезно?

Решение

Если вы используете OrdersTable В качестве основной таблицы вы можете использовать 1:1 Отношения с использованием set_relation (). Анкет Это было бы, если бы вы просматривали заказ и хотели увидеть/установить, к какому пользователю принадлежит заказ.

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

Это позволит вам выбрать, какой пользователь для конкретного заказа.

Однако, по-видимому, у пользователя может быть много заказов- А 1:n отношение. Это было бы так, если бы пользователь был вашей основной таблицей, то есть вы просматриваете user в Crud и хочу увидеть все связанные приказы.

Этот метод требует промежуточной таблицы, с которой вы связываете две существующие таблицы, и небольшое изменение существующей структуры таблицы. Вам нужно удалить 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() позволит вам просматривать заказы пользователем и пользователем на заказ.

Другие советы

Если вы имеете в виду запрос, то;

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top