[英]Can I include a where clause before Inner join clause
我有這個代碼
$q = $conn->query("SELECT facultydetails.F_NAME,Paper_title from faculty inner join facultydetails on faculty.Fac_ID = facultydetails.Fac_ID where (paper_path = 'NULL' OR paper_path = '') and (certificate_path = 'NULL' OR certificate_path = '') and (report_path = 'NULL' OR report_path = '') " );
現在,我需要添加一個條件,在該條件下,用戶將提供id並且僅應選擇與id相關的東西,我才能使用此代碼
$q = $conn->query("SELECT facultydetails.F_NAME,Paper_title from faculty where facultydetails.Fac_ID='$FacID' inner join facultydetails on faculty.Fac_ID = facultydetails.Fac_ID where (paper_path = 'NULL' OR paper_path = '') and (certificate_path = 'NULL' OR certificate_path = '') and (report_path = 'NULL' OR report_path = '') " );
用PHP工作
不,您不能在內部聯接之前添加where子句。
內部聯接的語法如下:
SELECT column_list
FROM t1
INNER JOIN t2 ON join_condition1
INNER JOIN t3 ON join_condition2
...
WHERE where_conditions;
SELECT facultydetails.F_NAME,Paper_title
from faculty
inner join facultydetails on faculty.Fac_ID = facultydetails.Fac_ID
where facultydetails.Fac_ID='$FacID'
AND (paper_path = 'NULL' OR paper_path = '') and (certificate_path = 'NULL' OR certificate_path = '') and (report_path = 'NULL' OR report_path = '')
您不能在內部聯接之前添加where,但是可以將條件添加到on子句中,例如:
"SELECT facultydetails.F_NAME,Paper_title ".
"from faculty ".
"inner join facultydetails ".
"on (facultydetails.Fac_ID='$FacID') and (faculty.Fac_ID = facultydetails.Fac_ID) ".
"where (paper_path = 'NULL' OR paper_path = '') and (certificate_path = 'NULL' OR certificate_path = '') and (report_path = 'NULL' OR report_path = '') "
或者您可以預過濾您的教職員工表,例如:
"SELECT facultydetails.F_NAME,Paper_title ".
"from (select * from faculty where (facultydetails.Fac_ID='$FacID')) f ".
"inner join facultydetails ".
"on f.Fac_ID = facultydetails.Fac_ID ".
"where (paper_path = 'NULL' OR paper_path = '') and (certificate_path = 'NULL' OR certificate_path = '') and (report_path = 'NULL' OR report_path = '') "
編輯:
在SQL中,在單個查詢中的其他部分“上面”或“下面”的代碼將無法保證它先執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.