我想获取数据表单 mysql table 其中数据是否与右侧匹配
I want to get the data form form mysql table where data match with right side or not
SELECT a.*,b.clientId,c.partner_name, d.seo
FROM project_estimate_detail as a,
project as b,
partner as c,
projection as d
WHERE a.project_cat_id = 5 and
a.project_id = b.id and
b.clientId = c.id and
c.status =1 and c.id = d.client_id
GROUP BY(c.partner_name)
in c.id = d.client_id
.. 我想要匹配或不匹配 d.client_id
的所有行形式 c.id
如果我没猜错,您想通过一个公共属性 ID 连接多个表。在我看来,您应该使用 LEFT JOIN。http://www.w3schools.com/sql/sql_join_left.asp
在此处查看 JOINS 之间的区别,然后决定哪种更适合您:
http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
使用 LEFT OUTER JOIN。
但要做到这一点,您应该改为使用显式连接语法:-
SELECT a.*, b.clientId, c.partner_name, d.seo
FROM project_estimate_detail as a,
INNER JOIN project as b ON a.project_id = b.id
INNER JOIN partner as c ON b.clientId = c.id
LEFT OUTER JOIN projection as d ON c.id = d.client_id
WHERE a.project_cat_id = 5
AND c.status =1
GROUP BY(c.partner_name)
请注意,我怀疑这不会给您想要的结果。您按 _partner_name_ 分组,因此每个 partner_name 将返回一行。因为我假设一个合作伙伴名称将有多个客户,并且他们可以有多个估计,您将从 _project_estimate_detail_ 和 project 中为每个 _partner_name_ 返回一行详细信息;哪些行的详细信息未确定并且可能实际上是随机的。
SELECT a.*,b.clientId,c.partner_name, d.seo
FROM project_estimate_detail as a,
project as b,
partner as c,
projection as d
WHERE a.project_cat_id = 5 and
a.project_id = b.id and
b.clientId = c.id and
c.status =1 and c.id = d.client_id
GROUP BY(c.partner_name)
in c.id = d.client_id
.. 我想要匹配或不匹配 d.client_id
如果我没猜错,您想通过一个公共属性 ID 连接多个表。在我看来,您应该使用 LEFT JOIN。http://www.w3schools.com/sql/sql_join_left.asp
在此处查看 JOINS 之间的区别,然后决定哪种更适合您:
http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
使用 LEFT OUTER JOIN。
但要做到这一点,您应该改为使用显式连接语法:-
SELECT a.*, b.clientId, c.partner_name, d.seo
FROM project_estimate_detail as a,
INNER JOIN project as b ON a.project_id = b.id
INNER JOIN partner as c ON b.clientId = c.id
LEFT OUTER JOIN projection as d ON c.id = d.client_id
WHERE a.project_cat_id = 5
AND c.status =1
GROUP BY(c.partner_name)
请注意,我怀疑这不会给您想要的结果。您按 _partner_name_ 分组,因此每个 partner_name 将返回一行。因为我假设一个合作伙伴名称将有多个客户,并且他们可以有多个估计,您将从 _project_estimate_detail_ 和 project 中为每个 _partner_name_ 返回一行详细信息;哪些行的详细信息未确定并且可能实际上是随机的。