我想在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
(内连接,左连接,...)
答案 0 :(得分:1)
几乎是正确的。这应该可以正常工作:
SELECT u.name, c.name
FROM `user` u
LEFT JOIN `course` c on u.course = c.id WHERE u.name='Alice';
我知道,思考起来很奇怪,但实际上你是这样做的。
我改为u
和c
,因为它更适合使用。
答案 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