Php 我们可以在sql查询中多次使用相同的列名吗
我想在同一个查询示例中多次使用同一列 查询如何执行此操作以获得结果 我的桌子结构是这样的Php 我们可以在sql查询中多次使用相同的列名吗,php,mysql,Php,Mysql,我想在同一个查询示例中多次使用同一列 查询如何执行此操作以获得结果 我的桌子结构是这样的 JOB_ID |META_KEY | VALUE 1 | work_hour | Full Time 1 | profile | Clinical 1 | pay_scale | Sharing 由于在使用in函数时只有一个值,因此可以使用equals and use或括号替换该值-group by不是o
JOB_ID |META_KEY | VALUE
1 | work_hour | Full Time
1 | profile | Clinical
1 | pay_scale | Sharing
由于在使用in函数时只有一个值,因此可以使用equals and use或括号替换该值-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_数组函数。因为您在使用IN函数时只有一个值,您可以用equals和use或括号替换它-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_数组函数。我认为您遇到了以下问题: 在查询中,您添加了一个WHERE子句,如下所示:
M.VALUE IN ('Clinical') AND M.VALUE IN ('Full Time')
SELECT J.id as ID1, J.id as ID2 and so on...
这个条件总是错误的
您必须在以下情况下崩溃:
M.VALUE IN ('Clinical', 'Full Time')
关于使用多列:如果要在“选择字段”列表中添加同一列,必须使用别名,如下所示:
M.VALUE IN ('Clinical') AND M.VALUE IN ('Full Time')
SELECT J.id as ID1, J.id as ID2 and so on...
如果您想在WHERE条件中使用相同的列,没有问题,但是请注意您使用的关系运算符
编辑
关于M.VALUE的进一步解释通过一个例子:
假设您有一个名为Person
的表
您有一个名为sex
的列,其中F值表示女性,M值表示男性
因此,如果您编写此查询:
SELECT * FROM Person WHERE sex = 'F' and sex = 'M'
SELECT * FROM Person WHERE sex IN ('F', 'M')
您有0行受影响
但如果您编写此查询:
SELECT * FROM Person WHERE sex = 'F' and sex = 'M'
SELECT * FROM Person WHERE sex IN ('F', 'M')
或同等品
SELECT * FROM Person WHERE sex = 'F' or sex = 'M'
您的表中有所有行我想您遇到了以下问题: 在查询中,您添加了一个WHERE子句,如下所示:
M.VALUE IN ('Clinical') AND M.VALUE IN ('Full Time')
SELECT J.id as ID1, J.id as ID2 and so on...
这个条件总是错误的
您必须在以下情况下崩溃:
M.VALUE IN ('Clinical', 'Full Time')
关于使用多列:如果要在“选择字段”列表中添加同一列,必须使用别名,如下所示:
M.VALUE IN ('Clinical') AND M.VALUE IN ('Full Time')
SELECT J.id as ID1, J.id as ID2 and so on...
如果您想在WHERE条件中使用相同的列,没有问题,但是请注意您使用的关系运算符
编辑
关于M.VALUE的进一步解释通过一个例子:
假设您有一个名为Person
的表
您有一个名为sex
的列,其中F值表示女性,M值表示男性
因此,如果您编写此查询:
SELECT * FROM Person WHERE sex = 'F' and sex = 'M'
SELECT * FROM Person WHERE sex IN ('F', 'M')
您有0行受影响
但如果您编写此查询:
SELECT * FROM Person WHERE sex = 'F' and sex = 'M'
SELECT * FROM Person WHERE sex IN ('F', 'M')
或同等品
SELECT * FROM Person WHERE sex = 'F' or sex = 'M'
您的表中有所有行您尝试过这个吗?如果尝试过,您有任何错误吗?请使用别名,例如
选择J.ID作为J\u ID,选择R.ID作为R\u ID,…。
是,我有错误。什么是解决方案。张贴错误。2.“临床”中的M.VALUE和“全职”中的M.VALUE始终不返回任何内容。3.要在“选择字段”列表中放置的同一字段?如果是,请使用别名抱歉!错误意味着我得到了空白页。如果我在mysql中运行这个查询,它将一无所获。你尝试过这个吗?如果尝试过,您有任何错误吗?请使用别名,例如选择J.ID作为J\u ID,选择R.ID作为R\u ID,…。
是,我有错误。什么是解决方案。张贴错误。2.“临床”中的M.VALUE和“全职”中的M.VALUE始终不返回任何内容。3.要在“选择字段”列表中放置的同一字段?如果是,请使用别名抱歉!错误意味着我得到了空白页。如果我在mysql中运行这个查询,它不会获取任何内容