[英]PHP Select Count and Left Join where
我不確定是否可以通過這種方式組合 SELECT COUNT + Left Join,但這對我非常有幫助。
這是我的代碼 whitout Left Join 嘗試:
$pp = mysql_result(mysql_query("SELECT COUNT(*) FROM app_tgp WHERE idt='$zaznam[id]' AND ( partic='' OR partic='y' OR (partic=='n' AND $zaznam[logoff]=='n'))"), 0);
我必須從特定訓練(WHERE idt) where partic = '' OR partic = 'y' OR (partic = 'n' AND TRAINING[logoff] = 'n')
獲得 COUNT 名球員, where partic = '' OR partic = 'y' OR (partic = 'n' AND TRAINING[logoff] = 'n')
問題是TRAINING[logoff]
是來自不同表的值。 我是否能夠根據app_tgp.idt = app_training.id
使 Left Join 將此值放入 Select Count to Where 子句中?
感謝您的任何回答!
問題出在這里 $zaznam[logoff]=='n'。 必須有任何列名你寫了 $zaznam[logoff]。 對於應用左連接,您應該執行以下操作:
SELECT COUNT(*) FROM app_tgp t1 LEFT JOIN app_training t2 on t1.idt = t2.id WHERE t1.idt='$zaznam[id]' AND ( t1.partic='' OR t1.partic='y' OR (t1.partic=='n' AND t2.your_column_name_here=='n'))
你必須做LEFT JOIN
claue。 在這種情況下,您的training
表必須有任何表示來自列app_tgp
表的任何信息的列。 如果是這樣,您可以構建查詢:
$pp = mysql_result(mysql_query("SELECT COUNT(*) FROM app_tgp LEFT JOIN different_table ON app_tgp.column = different_table.column WHERE app_tgp.idt='$zaznam[id]' AND ( app_tgp.partic='' OR app_tgp.partic='y' OR (app_tgp.partic=='n' AND different_table.training[logoff] = 'n'))"), 0);
在JOIN
app_tgp.column = different_table.column
, app_tgp.column = different_table.column
- 列必須具有相同的信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.