简体   繁体   English

LEFT JOIN 和 WHERE 导致错误

[英]LEFT JOIN and WHERE causing error

I have a nested mysql_query.我有一个嵌套的 mysql_query。

$resultSub = mysql_query("SELECT * 
                            FROM ensembles 
                           WHERE en_name = $name 
                       LEFT JOIN ensemble_names on ensembles.en_name = ensemble_names.en_nm_ID 
                       LEFT JOIN students on ensembles.en_stu = students.s_ID 
                       LEFT JOIN part_names on ensembles.en_part = part_names.p_nm_ID 
                        ORDER BY $sort $orderBy");

The query works fine without the WHERE clause, which I thought may be filtering out rows for the LEFT JOIN command, but that's not the case.如果没有 WHERE 子句,查询可以正常工作,我认为这可能会过滤掉LEFT JOIN命令的行,但事实并非如此。

The WHERE clause should be placed after the LEFT JOINs: WHERE 子句应放在 LEFT JOIN 之后:

$resultSub = mysql_query("SELECT * 
                            FROM ensembles 
                       LEFT JOIN ensemble_names on ensembles.en_name = ensemble_names.en_nm_ID 
                       LEFT JOIN students on ensembles.en_stu = students.s_ID 
                       LEFT JOIN part_names on ensembles.en_part = part_names.p_nm_ID 
                           WHERE en_name = $name 
                        ORDER BY $sort $orderBy");

Well, you put the WHERE clause in the wrong place.好吧,你把WHERE子句放在了错误的地方。

Read the documentation .阅读文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM