簡體   English   中英

MySQL語句拉太多行

[英]MySQL statement pulling too many rows

我有兩個要使用內部聯接語句查詢的數據表。 其中一張表可獲取公司的每日庫存信息,因此每天在開放市場中每個公司都有一行。 另一張表保存有關公司的定性數據,每個公司只有一行。

我正在嘗試提取最新的股票信息,並將其與HTML表中的定性公司信息配對。 我可以進行所有工作,除了它仍在為公司(而不是最新)獲取每一行的每日信息。

有人可以協助這個查詢嗎?:

$query = "SELECT daily_info.Day, 
daily_info.Prev_close, 
stocks.Symbol, 
stocks.Company, 
stocks.Description 
FROM daily_info 
INNER JOIN stocks ON daily_info.Symbol = stocks.Symbol 
ORDER BY daily_info.Day, stocks.Company LIMIT 43
"; 

Example: 
Table 1: Daily_info
Day       |  Symbol  |  Company    |  Prev Close
06/15/14  |  CRM     |  Salesforce |  $52.34
06/15/14  |  AMZN    |  Amazon     |  $342.65
06/16/15  |  CRM     |  Salesforce |  $55.24
06/16/14  |  AMZN    |  Amazon     |  $349.64



Table 2: Stock
Symbol  |  Company           | Description
CRM     |  Salesforce.com    | This is a cloud based CRM company
AMZN    |  Amazon.com        | This is an ecommerce company


Output:
Company        |  Symbol   |  Prev Close    |   Description
Amazon.com     |  AMZN     |  $349.64       | This is an ecommerce company 
Salesforce.com |  CRM      |  $55.24        | This is a cloud based CRM company

我認為MySQL不支持LAG函數,因此您需要進行子查詢以獲取每個Symbol的最后日期,然后對該結果進行INNER聯接。 這樣的事情應該起作用:

 $query = "
    SELECT l.Company, l.Symbol, l.Prev_Close, r2.Description
    FROM Daily_info as l
    INNER JOIN
    (SELECT Symbol, MAX(Prev_close) as last_date FROM Daily_info GROUP BY Symbol) AS r
    ON (l.Symbol=r.Symbol AND l.Prev_close=r.last_date)
    INNER JOIN Stock as r2
    ON (l.Symbol=r2.Symbol)
    ";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM