PHP Select 计算并左连接 where

PHP Select Count and Left Join where

我不确定是否可以通过这种方式组合 SELECT COUNT + 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);

我必须从特定训练中获得 COUNT 名球员(WHERE idt)where partic = '' OR partic = 'y' OR (partic = 'n' AND TRAINING[logoff] = 'n')

问题是 TRAINING[logoff] 是来自不同 table 的值。我是否可以让 Left Join 将此值放入 Select Count to Where 子句基于 app_tgp.idt = app_training.id?

感谢您的回答!

你必须做 LEFT JOIN 条款。在这种情况下,您的 training table 必须有任何列表示来自列 app_tgp table 的任何信息。如果是这样,您可以构建查询:

$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 - 列必须具有相同的信息

问题出在$zaznam[注销]=='n'。必须有您编写 $zaznam[logoff] 的任何列名称。要应用 Left Join,您应该这样做:

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'))