簡體   English   中英

PHP 選擇計數和左連接在哪里

[英]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.columnapp_tgp.column = different_table.column - 列必須具有相同的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM