我的表结构如下:
工作
| jobuniqueid | jobtypeunique | jobdateadded | jobtitle | jobuserkey | jobdeleted
| 1 | 3 | 2019-04-04 | Dentist | 69 | 0
工作类型
| jobtypeunique | jobtypename | jobtypecolor |
| 3 | fulltime | #336699 |
所以,我想做一个查询,显示每行的以下信息:
jobuniqueid、jobdateadded、jobtitle、jobtypename、jobtypecolor
我试着用leftjoin实现这一点,比如:
SELECT jobunique, jobdateadded, jobtitle FROM job
WHERE (jobuserkey = 69 AND jobdeleted = 0)
LEFT JOIN jobtype ON job.jobtypeunique = jobtype.jobtypeunique
ORDER BY jobdateadded DESC
这个查询会导致一堆错误。你能解释一下我的语法哪里是错的吗?还有,我在哪里声明我想从jobtype表中显示哪些列。
最佳答案
您可以使用以下解决方案:
SELECT j.jobuniqueid, j.jobdateadded, j.jobtitle, jt.jobtypename, jt.jobtypecolor
FROM job j LEFT JOIN jobtype jt ON j.jobtypeunique = jt.jobtypeunique
WHERE j.jobuserkey = 69 AND j.jobdeleted = 0
ORDER BY j.jobdateadded DESC
demo on dbfiddle.uk
您必须在
WHERE
之后使用FROM ... LEFT JOIN ... ON ...
部分。FROM
和LEFT JOIN
部分正在定义一个新的(连接的)表。在FROM
和LEFT JOIN
部分之后,您可以使用WHERE
筛选联接表的行。还可以查看documentation of SELECT
。关于mysql - 通过带有JOIN的ID将另一个表中的信息添加到mysql-query-result-MYSQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55835761/