[英]Can we use same column name multiple time in sql query
我想在同一查詢示例中多次使用同一列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
我認為您有這個麻煩:
在查詢中,您需要添加一個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'
您的表中有所有行
由於使用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函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.