[英]SQL query for Inner Join with Select
I want to write a SQL query like the following.我想编写一个 SQL 查询,如下所示。 Its syntax is not correct.它的语法不正确。 How can I correct it?我该如何纠正它?
$sql_package_feature = "SELECT f.feature_id, f.feature_name FROM tbl_feature f
LEFT JOIN SELECT * FROM tbl_feature_and_profile fp WHERE fp.profile_id= ? ) ON
f.feature_id = fp.feature_id AND f.package_id = fp.package_id WHERE fp.feature_id
IS NULL AND f.package_id = ? ORDER BY f.feature_id";
I think it was abount missing 'as fp' after subselect.我认为这是在子选择之后缺少'as fp'。 Try this query:试试这个查询:
SELECT
f.feature_id,
f.feature_name
FROM tbl_feature f
LEFT JOIN (SELECT * FROM tbl_feature_and_profile fp WHERE fp.profile_id= ? )
as fp ON (f.feature_id = fp.feature_id AND f.package_id = fp.package_id)
WHERE
fp.feature_id IS NULL AND f.package_id = ? ORDER BY f.feature_id
If you join against a subselect, you have to name it.如果你加入一个子选择,你必须给它命名。 Put the name on the subselect instead of the table inside it:将名称放在子选择上而不是其中的表:
SELECT f.feature_id, f.feature_name
FROM tbl_feature f
LEFT JOIN (
SELECT *
FROM tbl_feature_and_profile
WHERE profile_id= ?
) fp ON f.feature_id = fp.feature_id AND f.package_id = fp.package_id
WHERE fp.feature_id IS NULL AND f.package_id = ?
ORDER BY f.feature_id
You didn't give a name to the second table, but you are using it later in the ON-Clause.您没有为第二个表命名,但您稍后会在 ON 子句中使用它。 fp
was missing after the closing bracket:右括号后缺少fp
:
SELECT f.feature_id, f.feature_name
FROM tbl_feature f
LEFT JOIN (
SELECT *
FROM tbl_feature_and_profile fp
WHERE fp.profile_id= ?
) fp
ON f.feature_id = fp.feature_id
AND f.package_id = fp.package_id
WHERE fp.feature_id IS NULL
AND f.package_id = ?
ORDER BY f.feature_id"
;
Try a JOIN without a nested SELECT statement, only a table name.尝试没有嵌套 SELECT 语句的 JOIN,只有表名。 Try:尝试:
$sql_package_feature =
"SELECT f.feature_id, f.feature_name
FROM
tbl_feature f
LEFT JOIN
tbl_feature_and_profile fb
ON f.feature_id = fp.feature_id AND f.package_id = fp.package_id
WHERE fp.feature_id IS NULL AND f.package_id = ? AND fp.profile_id = ? ORDER BY f.feature_id";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.