PHP选择Count和Left Join,其中

PHP选择Count和Left Join,其中,php,mysql,join,left-join,Php,Mysql,Join,Left Join,我不确定是否有可能以这种方式将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); 我必须从特定训练(其中idt)

我不确定是否有可能以这种方式将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);
我必须从特定训练(其中idt)
partic=''或partic='y'或(partic='n'和training[logoff]='n')中获得球员数量。

问题是
TRAINING[logoff]
是来自不同表的值。基于
app\u tgp.idt=app\u training.id
,我是否能够进行左连接以将此值放入Select Count to Where子句中


谢谢你的回答

您必须执行
左连接
命令。在这种情况下,您的
training
表必须有任何一列表示
app\u tgp
表中的任何信息。如果是,您可以生成查询:

$pp=mysql\u结果(mysql\u查询(“选择计数(*))
来自app_tgp
左键连接app_tgp.column上的不同_表=不同的_表.column
其中app_tgp.idt='$zaznam[id]'
和(app_tgp.partic=''或app_tgp.partic='y'
或(app_tgp.parti='n'
和不同的_表。训练[注销]=“n'))”),0)


JOIN
claus中,
app\u tgp.column=不同的表。column
-列必须具有相同的信息

这里的问题是$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'))
尝试在app_tgp.idt=app_training.id上从app_tgp LEFT加入app_training,其中idt='$zaznam[id]'和(parti=''或parti='y'或(parti=='n'和$zaznam[logoff]='n')中选择COUNT(*)