【问题标题】:MySQL Get One Column Only OnceMySQL 只获取一列一次
【发布时间】:2018-09-08 01:47:08
【问题描述】:

我有 2 个 MySQL 表,我可以从一个查询中获取数据

“表”表:

“检查”表:

我一直在尝试的查询及其结果:

SELECT tables.tableName, tables.tableRes, tables.tableResFor, checks.chkID, checks.chkDate, checks.chkStatus 
FROM tables 
LEFT JOIN checks ON tables.tableID=checks.chkTable 
WHERE tables.tableID=3 
ORDER BY checks.chkStatus DESC, checks.chkID ASC

这里有问题

  • 如果查询没有结果,我需要 tableName 列,该列永远不会为空,因此其他列可以为空(现在可以使用)
  • 我不想获取第一行之后的行,如果 chkStatus 列是 1 或 0 或 null,很快我需要 chkStatus 上带有 2 的行,如果第一行是 0、1 或 null,我不'不需要其他行...

提前致谢,我已经为这个问题工作了 10 多个小时......

【问题讨论】:

  • 你不能在WHERE 子句中添加AND checks.chkStatus = 2 吗?
  • 问题的第二个要点让我感到困惑。你能澄清一下吗?

标签: mysql join union


【解决方案1】:

我需要 chkStatus 为 2 的其他检查 所以,将条件添加到联接中

选择 表.tableName , 表.tableRes , 表.tableResFor , 检查.chkID , 检查.chkDate , 检查.chkStatus 从表 LEFT JOIN 检查 tables.tableID = checks.chkTable AND chkStatus = 2 WHERE 表.tableID = 3

【讨论】:

  • 感谢您的回复,但我需要 chkStatus 为 2 的其他检查,它们可能不止一个
  • 我根据您的评论修改了我的答案(by the way "I don't want to get the rows after first row" is why I used the prior approach)
  • 谢谢!将该条件添加到连接中(这是我一无所知的)效果很好。 (在那里,我的意思是 chkStatus 是 1 或 0 还是 null,但它确实有效)
猜你喜欢
  • 2021-12-22
  • 2011-06-11
  • 2021-12-22
  • 2022-01-23
  • 2020-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多