在mysql join中使用WHERE

时间:2014-03-16 23:25:30

标签: mysql sql join

我想在mysql join中使用WHERE

SELECT user.name , course.name
FROM `user`
LEFT JOIN `course` on user.course = course.id;

我想在WHERE name='Alice'

中添加user.name

我试图通过以下方式做到:

SELECT user.name WHERE name='Alice' , course.name
FROM `user`
LEFT JOIN `course` on user.course = course.id;

或     SELECT user.name,course.name     来自user WHERE user.name =' Alice'     在user.course = course.id;

上左键加入course

但它接缝错了

如何在Mysql连接中使用WHERE(内连接,左连接,...)

4 个答案:

答案 0 :(得分:1)

几乎是正确的。这应该可以正常工作:

SELECT u.name, c.name
FROM `user` u
LEFT JOIN `course` c on u.course = c.id WHERE u.name='Alice';

我知道,思考起来很奇怪,但实际上你是这样做的。

我改为uc,因为它更适合使用。

答案 1 :(得分:1)

语法错误,正确的语法是

SELECT
FROM
JOIN
ON
WHERE 

所以在你的情况下它将是

SELECT a.name, b.name as bname
FROM `user` a
LEFT JOIN `course` b 
ON a.course = b.id
WHERE a.name='Alice' 

请注意,我使用别名,因为两列具有相同的名称

答案 2 :(得分:1)

我没有用,但可以尝试一下。

SELECT user.name AS user_name, course.name AS course_name
FROM user
LEFT JOIN course
ON user.id = course.id
WHERE user.name = 'Alice';

答案 3 :(得分:0)

您可以为表或子查询创建别名,然后您可以简单地接近表格中的数据。

有一篇旧文章,但SQL没有任何改变。它对你有用。
第三个例子是你的问题的解决方案。

http://www.sqlteam.com/article/additional-criteria-in-the-join-clause