我希望在相同的查询示例中使用相同的列多次6次 查询如何获得结果?
SELECT J.ID , J.U_POST_ID,
J.TITLE,J.CREATION_DATE,J.STATUS,
R.FIRST_NAME, R.LAST_NAME,R.CLINICAL_CLINIC_NAME,
J.REQUIREMENT,J.STATE,J.CITY,J.DESCRIPTION,J.CALL_DUR,J.USER_ID
FROM
df_job_meta M LEFT OUTER JOIN df_job_post J ON
M.JOB_ID = J.ID
LEFT OUTER JOIN df_register_users R ON
R.ID = J.USER_ID
WHERE
J.STATUS='ACTIVE' AND R.OCCUPATION !='student' AND M.VALUE IN ('Clinical') AND M.VALUE IN ('Full Time') group BY J.ID DESC
我的表格结构就像这样
JOB_ID |META_KEY | VALUE
1 | work_hour | Full Time
1 | profile | Clinical
1 | pay_scale | Sharing
答案 0 :(得分:3)
我认为你有这个麻烦:
在您的查询中,您添加了一个WHERE子句,如下所示:
M.VALUE IN ('Clinical') AND M.VALUE IN ('Full Time')
此条件始终为FALSE。
你必须在以下情况下解决你的状况:
M.VALUE IN ('Clinical', 'Full Time')
关于使用列倍数:如果要在SELECT字段列表中添加同一列,则必须使用如下别名:
SELECT J.id as ID1, J.id as ID2 and so on...
如果你想在WHERE条件中使用相同的列,那么没问题,但要注意你使用的关系运算符
修改强>
通过一个例子进一步解释M.VALUE:
假设您有一个名为Person
的表。
您有一个名为sex
的列,其中您有关于FEMAIL的值F和关于MALE的M。
所以如果你写这个查询:
SELECT * FROM Person WHERE sex = 'F' and sex = 'M'
你有0行受影响
但是如果你写这个查询:
SELECT * FROM Person WHERE sex IN ('F', 'M')
或同等的
SELECT * FROM Person WHERE sex = 'F' or sex = 'M'
你的表中有所有行
答案 1 :(得分:1)
由于您在使用IN函数时只有一个值,您可以用equals替换它,并使用或使用括号 - group by也不是用于orderby的ASC或DESC - 尝试:
SELECT J.ID , J.U_POST_ID,
J.TITLE,J.CREATION_DATE,J.STATUS,
R.FIRST_NAME, R.LAST_NAME,R.CLINICAL_CLINIC_NAME,
J.REQUIREMENT,J.STATE,J.CITY,J.DESCRIPTION,J.CALL_DUR,J.USER_ID
FROM
df_job_meta M LEFT OUTER JOIN df_job_post J ON
M.JOB_ID = J.ID
LEFT OUTER JOIN df_register_users R ON
R.ID = J.USER_ID
WHERE
J.STATUS='ACTIVE' AND R.OCCUPATION !='student' AND (M.VALUE = 'Clinical' OR M.VALUE = 'Full Time' group BY J.ID
或者,如果您真的在寻找这两个值,那么就这样做:
SELECT J.ID , J.U_POST_ID,
J.TITLE,J.CREATION_DATE,J.STATUS,
R.FIRST_NAME, R.LAST_NAME,R.CLINICAL_CLINIC_NAME,
J.REQUIREMENT,J.STATE,J.CITY,J.DESCRIPTION,J.CALL_DUR,J.USER_ID
FROM
df_job_meta M LEFT OUTER JOIN df_job_post J ON
M.JOB_ID = J.ID
LEFT OUTER JOIN df_register_users R ON
R.ID = J.USER_ID
WHERE
J.STATUS='ACTIVE' AND R.OCCUPATION !='student' AND M.VALUE IN ('Clinical','Full Time') group BY J.ID
您可以将Mysql IN函数想象为PHP的in_array函数。