我有两个表都有名为member_id
的列。我想选择所有member_ids ......
WHERE end_date <= NOW()
和approved='n'
。我对JOIN
非常不熟悉,但我相信这就是我们所需要的。这样的事情似乎并没有起作用......
SELECT both.member_id, both.course_id
FROM vbc_status
INNER JOIN course_enrollment ON both.member_id=both.member_id AND
both.end_date <= NOW() AND
both.approved='n'
我怎样才能实现这一目标?
答案 0 :(得分:1)
即使在加入后,您仍然必须按源来引用原始列。我不确定哪个表格有course_id
,因此您必须在运行之前修复该表。
SELECT vbc_status.member_id, ?.course_id
FROM vbc_status INNER JOIN course_enrollment
ON vbc_status.member_id = course_enrollment.member_id
AND vbc_status.end_date <= NOW() AND course_enrollment.approved = 'n'
你可能会发现表别名很方便。
答案 1 :(得分:1)
我想你想要这个:
SELECT *
FROM vbc_status v
INNER JOIN course_enrollment c ON v.member_id = c.member_id
WHERE v.end_date <= NOW() AND c.approved='n'
答案 2 :(得分:0)
SELECT t1.member_id, t1.course_id FROM vbc_status t1
JOIN course_enrollment ce USING(member_id)
WHERE t1.end_date <= NOW() AND ce.approved='n'
我假设end_date是vbc_status的一列,并且已批准是course_enrollment的一列。
声明说明: 使用vbc_status t1设置表别名,这使得t1成为表vbc_status的别名,而course_enrollment获取别名ce。 然后在选择时,您必须使用表的别名为要查看的字段添加前缀,而where语句也是如此。