2016-06-02 5 views
0

Так у меня есть две таблицы:MQL, PHP выбрать все из двух таблиц?

order_product 

-------------------------------------------------- 
| ProductID  | Quantity   
-------------------------------------------------- 

products 

------------------------------------------------------------- 
| ProductID  | productname | Desc | Price | Stock | Image  
------------------------------------------------------------ 

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

Моя проблема заключается в том, что я пытаюсь показать страницу проверки, которая показывает все в списке, но как мне объединить две таблицы? Кроме того, для первой таблицы нет внешних ключей.

мне это нужно в SQL заявление, а предпочтительно, как:

$sql = 'SELECT...' 

Будет ли это работать?

$sql = "SELECT * FROM order_products 
UNION 
SELECT * FROM products" 

Если да, то как я знаю, какая строка является?

Моя требуемый выход записи, теперь выглядит как это:

ProductID  | Quantity | Productname | Desc | Price | Stock | Image 
+0

связаться с product_id? – jitendrapurohit

+0

Как это сделать в php? – Emolk

+0

Можете ли вы дать образец вывода, который хотите получить? – jussius

ответ

1

Вам нужен классический JOIN пункт:

SELECT * 
    FROM products 
LEFT JOIN order_products on products.ProductId = order_products.ProductId 
+0

Как бы выглядела таблица? – Emolk

+0

$ sql = "SELECT * FROM products LEFT JOIN order_products on products.PRODUCTID = order_products.PRODUCTID"; Таким образом, это присоединится к двум таблицам только на моем php-файле? – Emolk

+0

Справа. Конечно, если вы выполняете yhis SQL-предложение. –

-1

Попробуйте этот.

SELECT ProductID, Quantity, ProductID, productname, Desc, Price, Stock, Image 
FROM order_product, products 
INNER JOIN order_product.ProductID ON products.ProductID; 
0
select table1.ProductID 
    , table1.Quantity 
    , table2.Productname 
    , table2.Desc 
    , table2.Price 
    , table2.Stock 
    , table2.Image 
FROM table1 
JOIN table2 ON table1.productid=table2.productid 
0

Моя проблема я пытаюсь показать страницу оформления заказа, который показывает все в списке, но как я объединить две таблицы?

Необходимо просто использовать mysql JOIN, чтобы показать cart элементов.

Данные таблицы должны быть такими, как я добавил в демо.

См SQL Fiddle Demo

SELECT 
    o.id 'orderId', 
    o.ProductID 'pid', 
    SUM(o.Quantity) 'qty', 
    p.productname 'product', 
    p.`Price` 'price' 
FROM 
    order_product o 
    INNER JOIN products p 
    ON p.`ProductID` = o.`ProductID` 

Edit Обязательный выход

Моя требуемый выход записи, теперь выглядит как это:
ProductID | Количество | Имя продукта | Desc | Цена | Фондовый | Изображение

Изменить выше SELECT части запросов Query SELECT tablename.your_column .....

0

Не уверен, что именно то, что выход вы хотите, чтобы получить это, но вы должны использовать что-то вроде этого

SELECT o.ProductID, o.Quantity, p.Price, o.Quantity * p.Price 
FROM order_product o 
LEFT JOIN products p ON o.ProductID = p.ProductID 
0

Используйте внутреннее соединение.

Select * from order_products op INNER JOIN products p ON p.ProductID = op.ProductID; 

w.r.t.ваша потребность, вышеуказанный запрос необходимо изменить на: -

"SELECT *, 
     SUM(op.quantity * p.price) AS grandTotal 
    FROM order_products op 
    INNER JOIN PRODUCT p ON p.ProductID = op.ProductID WHERE p.ProductID =".$prodId(your php variable of product id); 
Смежные вопросы