Объедините три таблицы и покажите значения в одном запросе SQL - PullRequest
0 голосов
/ 01 апреля 2020

Я работаю над проектом корзины покупок, и у меня есть три таблицы - Заказы - Элементы заказов и продукты, к которым я хочу присоединиться к ним в одном запросе, но я не знаю, как это сделать, я хочу показать все значения из всех три таблицы см. фото с таблицами . вот что я пробовал до сих пор ..

             $sql = "  SELECT o.*, 
                       oi.pid,
                       oi.orderid,
                       oi.pquantity,
                       c.cid,
                       c.catname,
                       p.name, 
                       p.description,
                       p.catid,
                       u.firstname,
                       u.lastname,
                       u.mobile,
                       u.email
                          FROM orders o,
                               orderitems oi,
                               products p,
                               usersmeta u,
                               category c
                         WHERE o.id    = oi.orderid
                           AND oi.pid  = p.id
                           AND o.uid   = u.uid
                           AND p.catid = c.cid
                         ORDER BY o.id DESC";

1 Ответ

0 голосов
/ 01 апреля 2020

Простой способ сделать это:

select o.*, oi.*, p.*, u.*
  from orders o,
       orderitems oi,
       products p,
       usersmeta u
 where o.id = oi.orderid
   and oi.pid = p.id
   and o.uid = u.uid
 order by o.id desc;

Помните, что хорошей идеей является указание только названий нужных вам столбцов, например:

select o.id, u.firstname, u.lastname, p.id as productid etc...

Если вам нужен тот же запрос в другом месте, возможно, было бы неплохо создать представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...