select s.ymd,s.symbol,s.price_close from stocks s LEFT SEMI JOIN dividends d ON s.ymd=d.ymd and s.symbol=d.symbol where s.symbol='IBM' and year(ymd)>=2000; 用mysql语言改写
时间: 2024-03-26 15:35:37 浏览: 45
以下是 MySQL 语言的改写:
```
SELECT s.ymd, s.symbol, s.price_close
FROM stocks s
WHERE s.symbol = 'IBM'
AND YEAR(s.ymd) >= 2000
AND EXISTS (
SELECT 1
FROM dividends d
WHERE s.ymd = d.ymd
AND s.symbol = d.symbol
);
```
使用 `EXISTS` 子查询来模拟 `LEFT SEMI JOIN`,只返回左表中存在匹配项的记录。同时在主查询中使用 `WHERE` 子句过滤掉不符合条件的记录。
相关问题
select select s.ymd,s.symbol,s.price_close from stocks sinner join dividends don s.symbol = d.symbol and s.ymd = d.ymdwhere s.symbol = 'IBM' and s.ymd >= '2000-01-01'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select s.ymd,s.symbol,s.price_close from stocks sinner join dividends don s.symb' at line 1
您的查询语句中有一些语法错误,导致 MySQL 报错。请注意在语句中使用空格分隔关键字和表名、列名等标识符。以下是修正后的查询语句,查询 IBM 公司从 2000 年起所有支付股息的交易日的日期、股票代码和收盘价:
```
select s.ymd, s.symbol, s.price_close
from stocks s
inner join dividends d
on s.symbol = d.symbol and s.ymd = d.ymd
where s.symbol = 'IBM' and s.ymd >= '2000-01-01';
```
该语句与之前的语句相同,使用 INNER JOIN 将 stocks 和 dividends 两个表连接,以便筛选出 IBM 公司的支付股息交易日的日期、股票代码和收盘价。其中,ON 子句指定了连接条件,即 stocks 表中的 symbol 和 ymd 列分别与 dividends 表中的 symbol 和 ymd 列相等。WHERE 子句则用于过滤出符合条件的数据,即 IBM 公司自 2000 年起的数据。最终,SELECT 子句返回 stocks 表中的 ymd、symbol 和 price_close 列。
在mysql中查询IBM公司(symbol = IBM)从 2000 年起所有支付股息的交易日(dividends 表中有对应记录)的收盘价(price_close),涉及两个表stocks(symbol,ymd,price_close)和dividends(ymd,symbol),输出ymd,symnol,price_close,select等执行语句使用小写
你使用以下的SQL查询语句来获取IBM公司从2000年起支付股息的交易日的收盘价,并且输出ymd, symbol, price_close:
```
select s.ymd, s.symbol, s.price_close
from stocks s
inner join dividends d
on s.symbol = d.symbol and s.ymd = d.ymd
where s.symbol = 'IBM' and d.symbol = 'IBM' and year(d.ymd) >= 2000;
```
请将 `stocks` 和 `dividends` 替换为你所使用的股票交易数据表的表名。上述SQL查询语句将首先使用 INNER JOIN 连接两个表,然后从中筛选符合条件的记录,其中包括 IBM 公司从2000年起支付股息的交易日,并且最后获取这些日期对应的收盘价,并输出ymd, symbol, price_close。注意,MySQL 不区分大小写,因此使用小写也是可以的。
阅读全文