【发布时间】:2015-09-23 13:50:39
【问题描述】:
我的桌子是这样的:
+------------------+-------------------+-----------+
| name + student_number + date |
-------------------+-------------------+-----------|
| Daniel | 2014-10445 | 9-23-15 |
| Eden | 2014-10420 | 9-23-15 |
| Nadine | 2014-10012 | 9-24-15 |
| Eden | 2014-10420 | 9-25-15 |
----------------------------------------------------
我想从第二行获取值,该值在列名 student_number 中包含“2014-10420”,在日期列中包含“9-23-15”。
我在这里有我的查询:SELECT date,student_number FROM attendance WHERE date='9-23-15' AND student_number='2014-10420',但也返回包含“9-23-15”的其他行
如何获取两个匹配列??
【问题讨论】:
-
另外,仅选择您已经知道其值的两列有什么意义(因为它们由过滤条件固定)?您从中获得的唯一有用信息是匹配记录的数量,
SELECT COUNT(*) FROM ...将更有效地获得。 -
@eggyal:只有一行 (=2) 匹配 where 子句,第 1 行有不同的学号,第 4 行有不同的日期。不过同意第二条评论。
-
@PaulF:好点——我认为日期匹配。评论已删除。
-
查询在我看来确实没问题 - 你说表格看起来 “类似这样”。这正是它的外观吗?你能创建一个 SQLFiddle 来演示这个问题吗?
-
我已经按照这张表模拟了它,它可以按我的预期工作。你是如何格式化日期的? MYSQL 可以很有趣的日期,所以我觉得这可能是你的问题
标签: mysql