数据表查询问题

qaulxy 2009-09-09 07:39:48
有两个数据表 Stock(股票) Data(股票信息)

首先Stock
ID Name
001 青岛啤酒
002 海尔集团
003 魏桥创业

然后Data
StockID Date open(开盘价)
003 2009-09-09 0.34
001 2009-09-08 0.45
002 2009-09-08 0.23
003 2009-09-08 0.36

网页排版
(select * from Stock的结果印出来的)
001 青岛啤酒 添加数据(是按钮)
002 海尔集团 添加数据(是按钮)
003 魏桥创业 添加数据(是按钮)

9号这天应该是有3条数据的(001和002号还没有添加进来)
那个网页上,怎么做到让 003 这支股票后面的按钮隐藏,因为0003已经添加过了,应该只显示001和002两个。
谢谢!!
...全文
129 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
qaulxy 2009-09-15
  • 打赏
  • 举报
回复
SELECT s.StockID, s.StockName, if( d.tt = '2009-09-13', 1, 0 ) Sign FROM stock AS s LEFT JOIN ( SELECT StockID, max( Time ) tt FROM data GROUP BY StockID )d ON d.StockID = s.StockID 大智慧,终于可以结贴了 谢谢各位,太感谢了 真心的csdn真好
YHL27 2009-09-11
  • 打赏
  • 举报
回复
sf!!
wuszh1688 2009-09-10
  • 打赏
  • 举报
回复
就是这二库,我只用MYSQL

显示行 0 - 2 (3 总计, 查询花费 0.0007 秒)

SQL 查询 : [编辑] [解释 SQL] [创建 PHP 代码]
SELECT s.ID, s.Name,
IF (
d.dd = '2009-09-09', 1, 0
)sign
FROM Stock s
INNER JOIN (

SELECT StockID, max( Date ) dd
FROM DATA GROUP BY StockID
)d
WHERE s.id = d.StockID


错误

SQL 查询 :

SHOW KEYS FROM `s`

MySQL 返回:


#1146 - Table 'mysql.s' doesn't exist

阿_布 2009-09-10
  • 打赏
  • 举报
回复
看看你当前的数据库是不是Stock,Data表所在的数据库,提示你查询的是mysql数据库。
wuszh1688 2009-09-10
  • 打赏
  • 举报
回复
StockID Date open
3 2009-09-06 0.34
1 2009-09-08 0.45
2 2009-09-08 0.23
3 2009-09-08 0.36

ID Name
1 青岛啤酒
2 海尔集团
3 魏桥创业
wuszh1688 2009-09-10
  • 打赏
  • 举报
回复
我是: MySQL 5.1.30-community
wuszh1688 2009-09-10
  • 打赏
  • 举报
回复
mysql> select s.ID,s.Name,if(d.dd='2009-09-09',1,0) sign
-> from Stock s inner join
-> (select StockID,max(Date) dd from Data group by StockID)d
-> where s.id = d.StockID;
运行这条显示上边提示那个错误
阿_布 2009-09-10
  • 打赏
  • 举报
回复

SHOW KEYS FROM `s`
MySQL 返回:
#1146 - Table 'mysql.s' doesn't exist

你是指的这条语句运行错误?你没建s表,s表只是一个别名,肯定不存在啊。

阿_布 2009-09-10
  • 打赏
  • 举报
回复
那就奇怪了,在我的机子上可以运行的啊!我的mysql版本是5.0。
wuszh1688 2009-09-10
  • 打赏
  • 举报
回复
建了Stock Data
阿_布 2009-09-10
  • 打赏
  • 举报
回复
提示表s不存在,你建了表没有哦?
wuszh1688 2009-09-10
  • 打赏
  • 举报
回复
zhoupuyue,我执行语句怎么提示错误:

错误

SQL 查询 :

SHOW KEYS FROM `s`

MySQL 返回:


#1146 - Table 'mysql.s' doesn't exist

qaulxy 2009-09-10
  • 打赏
  • 举报
回复
我的也不行啊

我用另一个特别笨的方法弄的:
查出2009-09-09这天Data数据表中的$row['StockID']然后把值压出数据$arr中
然后查询stock中的$row2['StockID'],每次循环的时候,比较一下,看看¥row2['StockID']在不在数组$arr中,如果在就说明已经添加过了,隐藏后面的按钮
阿_布 2009-09-09
  • 打赏
  • 举报
回复

mysql> select * from Stock;
+------+----------+
| ID | Name |
+------+----------+
| 1 | 青岛啤酒 |
| 2 | 海尔集团 |
| 3 | 魏桥创业 |
+------+----------+
3 rows in set (0.00 sec)
mysql> select * from Data;
+---------+------------+------+
| StockID | Date | open |
+---------+------------+------+
| 3 | 2009-09-09 | 0.34 |
| 1 | 2009-09-08 | 0.45 |
| 2 | 2009-09-08 | 0.23 |
| 3 | 2009-09-08 | 0.36 |
+---------+------------+------+
4 rows in set (0.00 sec)

mysql> select s.ID,s.Name,if(d.dd='2009-09-09',1,0) sign
-> from Stock s inner join
-> (select StockID,max(Date) dd from Data group by StockID)d
-> where s.id = d.StockID;
+------+----------+------+
| ID | Name | sign |
+------+----------+------+
| 1 | 青岛啤酒 | 0 |
| 2 | 海尔集团 | 0 |
| 3 | 魏桥创业 | 1 |
+------+----------+------+
3 rows in set (0.00 sec)

在程序中只要根据sign是0还是1就可以确定按钮是添加数据还是隐藏。
wuszh1688 2009-09-09
  • 打赏
  • 举报
回复
你这个是不是求的在当天时间没有添加‘开盘价’的记录就显示‘按钮’添加。否则就不显示。
如果是这样的话:就可以用二条语句取。
先从Data表取出时间不等于当天的记录(后边显示按钮),再取出时间为当天的记录。不显示按钮
qaulxy 2009-09-09
  • 打赏
  • 举报
回复
sql怎么写呢?
cuiyang000 2009-09-09
  • 打赏
  • 举报
回复
用if(empty())判断下003里面的数据是否为空,如果不为空的话隐藏,为空的话不隐藏.

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧