Hoffe, dass jemand helfen kann.kombiniert zwei Select-Anweisungen mit GROUP und JOIN mysql
Ich habe zwei mysql Select-Anweisungen, die jeweils funktionieren, aber ich muss sie jetzt kombinieren.
Erstens:
SELECT $shares.*, $shares_company.name AS name, SUM($shares.number) AS totalNumber, MAX(date) AS lastTransDate, $shares.timestamp AS lastUpdated FROM $shares
INNER JOIN
$shares_company WHERE $shares_company.id = $shares.company_id GROUP BY $shares.company_id
Zweitens:
SELECT $shares.price AS lastPrice
FROM $shares WHERE ($shares.company_id,$shares.date) IN
(SELECT $shares.company_id, MAX($shares.date) FROM $shares GROUP BY $shares.company_id)
versuchte ich UNION
und UNION ALL
, und alle möglichen anderen Kombinationen.
Ich stecke fest!
UPDATE:
Nun, das ist, wie weit ich jetzt habe. Dies gibt alle korrekten Informationen zurück, mit der Ausnahme, dass ich die Summe der Spalte "Zahl" abrufen muss und ich nicht weiß, wo ich sie in die Abfrage einfügen soll. Die Abfrage einzufügen ist:
SELECT
SUM($shares.number) AS totalNumber FROM $shares
GROUP BY $shares.company_id
Die Abfrage Ich habe jetzt ist:
SELECT $shares.price AS lastPrice,
$shares.date AS lastTransDate,
$shares.company_id,
$shares.id,
$shares.timestamp AS lastUpdated,
$shares_company.name
FROM $shares
INNER JOIN $shares_company
ON $shares_company.id = $shares.company_id
WHERE ($shares.company_id,$shares.date) IN
(SELECT $shares.company_id, MAX($shares.date)
FROM $shares
GROUP BY $shares.company_id)
Vielen Dank für all die Hilfe.
Sie können Union nicht verwenden, wenn die Feldnummer unterschiedlich ist. Versuchen Sie, linker Join zu verwenden. –
Ich lege 'LINKE VERBINDUNG' zwischen die beiden Aussagen, aber keine Freude. –