我的表结构如下:
工作

| 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 ...部分。FROMLEFT JOIN部分正在定义一个新的(连接的)表。在FROMLEFT JOIN部分之后,您可以使用WHERE筛选联接表的行。还可以查看documentation of SELECT

关于mysql - 通过带有JOIN的ID将另一个表中的信息添加到mysql-query-result-MYSQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55835761/

10-12 13:57
查看更多