【问题标题】:How to show data from second table that has todays date only如何显示只有今天日期的第二个表中的数据
【发布时间】:2022-01-14 13:47:11
【问题描述】:

我在 2 个表格、表格鸟类和表格重量之间有一个左连接。

在我的 php 表中,它显示表 1 中的字段,例如 id、名称、物种、鸟类类型、最小飞行重量和最大飞行重量。 在表 2 中,我显示了字段权重。

当在另一个页面上输入重量时,它有一个日期戳,我试图让表格只显示在今天显示的日期输入的重量,此时它显示所有已输入的内容。

我怎样才能让它只显示与今天日期相关的重量。这是我的mysql查询

SELECT * FROM birds
LEFT JOIN Weights
ON birds.id = Weights.BirdId 
WHERE FlyingBird = 'Yes' OR Weights.Date = curdate() 
ORDER BY AnimalType, Name

【问题讨论】:

  • 好吧,您正在使用OR 逻辑门,这意味着只有其中一个条件需要为真。也许您想要一个 AND 条件?
  • 当我使用时我没有显示任何结果?
  • 满足您的要求以适应结果并不是指导任何事情的实用方法。你需要这两个条件都成立吗?如果是这样,请使用AND,否则如果您只需要一个条件为真,请使用OR。在您关注 the guidance given by nbk 之前,我们无法评论您为什么没有得到任何结果。
  • 请运行SHOW CREATE TABLE birds;SHOW CREATE TABLE Weights; 然后发布结果into your question。包括一些数据样本。

标签: php mysql date


【解决方案1】:

Date 列转换为 DATE,如果是时间戳,我假设他们的数据是YYYY-mm-dd HH:ii:ss,因此您应该先将其转换为 DATE 格式。

在此处查看示例;

SELECT * FROM birds
LEFT JOIN Weights
ON birds.id = Weights.BirdId 
WHERE FlyingBird = 'Yes' AND CAST(Weights.Date AS DATE) = CAST(NOW() AS DATE)
ORDER BY AnimalType, Name

SELECT * FROM birds
LEFT JOIN Weights
ON birds.id = Weights.BirdId 
WHERE FlyingBird = 'Yes' AND DATE(Weights.Date) = DATE(NOW())
ORDER BY AnimalType, Name

【讨论】:

  • 谢谢,我试过了,但没用 :-( 只是显示一个空白屏幕。你有电子邮件地址吗?我可以把整个代码发给你,因为我可能出错了某处
  • 嗨,如果这是 mysql,请将 CUREDATE() 更改为 NOW() -- 检查我对原始答案的编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 2014-03-15
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多