2017-05-31 3 views
0

Ich habe 2 Tabellen product_sold, product_received. Ich habe gemeinsame Felder in beiden Tabellen product_sold Tabellemulti Abfrage, um das gleiche Ergebnis aus zwei Tabellen zu erhalten

product_id | reference | sold_date 1 | For designing | 2017-02-01 2 | dshdshf | 2017-02-05

product_received Tabelle

product_id | reference | received_date 4 | stock updation | 2017-03-01 2 | stock review | 2017-03-05 1 | Stocks shipment | 2017-03-06

ich das Ergebnis wie

Product Code | Reference | Date 19mm Alimin | Stocks shipment | 2017-03-06 19mm Alimin | For Designing | 2017-02-01 Alu Tape SC | Stock review | 2017-03-06 Alu Tape SC | dshdshf | 2017-02-05 9mm Sheet Pl | Stock updation | 2017-03-01

Produkte erhalten möchten ist in meiner Produkttabelle whi Ich muss mich diesen beiden Tabellen anschließen. Ich habe versucht, die Abfrage mit mysqli_multi_query auszuführen, hat aber nicht funktioniert.

Meine Produkttabelle

product_id | product_name 1 | 19mm Alimin 2 | Alu Tape SC 3 | 10.5 mm 4 | 9mm Sheet Pl

+0

bitte zeigen Sie uns die Struktur Ihrer als auch Produkttabelle. – FMashiro

+0

Der Produktcode der Spalte ist unklar, woher diese Daten stammen. –

+0

Ich habe meinen Beitrag oben mit Produkt Tabelle – user3368088

Antwort

1

zwei Abfragen sind möglich Ihre erwarteten Ergebnisse zu erzielen. Sie müssen JOIN und UNION ALL verbinden, um die beiden Abfragen zu kombinieren.

SELECT 
    product.product_name AS 'Product Code' 
, product_sold.reference AS 'Reference' 
, product_sold.sold_date AS 'Date' 
FROM 
product 
INNER JOIN 
product_sold 
ON 
product.product_id = product_sold.product_id 

UNION ALL 

SELECT 
    product.product_name AS 'Product Code' 
, product_received.reference AS 'Reference' 
, product_received.received_date AS 'Date' 
FROM 
product 
INNER JOIN 
product_received 
ON 
product.product_id = product_received.product_id 

Oder

SELECT 
    product.product_name AS 'Product Code' 
, product_sold.reference AS 'Reference' 
, product_sold.sold_date AS 'Date' 
FROM 
product 
INNER JOIN 
product_sold 
USING product_id 

UNION ALL 

SELECT 
    product.product_name AS 'Product Code' 
, product_received.reference AS 'Reference' 
, product_received.received_date AS 'Date' 
FROM 
product 
INNER JOIN 
product_received 
USING product_id 
+0

Vielen Dank bearbeitet. Ich hatte noch 2 Felder in anderen Tabellen. Ich bin erfolgreich beigetreten. Vielen Dank. 1. Abfrage funktionierte perfekt für mich. – user3368088

+0

Ich versuche, den Spaltennamen 'Details' hinzuzufügen, wenn er von' product_sold' table ist, sollte er als 'Sales' angezeigt werden oder wenn er von' product_received' stammt, muss er 'Purchase' anzeigen. Wie kann ich das erreichen? – user3368088

+0

ich habe es gelöst! – user3368088

0

Verwendung UNION:

SELECT product_id, reference, sold_date as date FROM product_sold 
UNION 
SELECT product_id, reference, received_date as date FROM product_received 

oder UNION verwenden, um all doppelte Werte zu erhalten.

Als Antwort auf Ihre bearbeiten, wenn Sie es mit dem mitgelieferten tun wollen join:

SELECT `product`.`product_name`, a.* FROM 
    (SELECT product_id, reference, sold_date as date FROM product_sold 
    UNION 
    SELECT product_id, reference, received_date as date FROM product_received) AS a 
INNER JOIN product ON `product`.`product_id` = a.`product_id`; 
Verwandte Themen