[英]Inner Join SQL Syntax
我以前从未做过内部连接SQL语句,所以我什至不知道这是否适合使用,但这是我的情况。
表1列:id,course_id,单元,课程表2列:id,course_id
最后,我要算的数id's
各单位在表1 中也列于表2。
因此,即使它不起作用,也可能类似...。
$sql = "SELECT table1.unit, COUNT( id ) as count, table2.id, FROM table1, table2, WHERE course_id=$im_course_id GROUP BY unit";
我确定我要执行的语法完全失败。 有修复的想法吗?
SELECT unit, COUNT( t1.id ) as count
FROM table1 as t1 inner JOIN table2 as t2
ON t1.id = t2.id
GROUP BY unit
希望这可以帮助。
如果我了解您想要什么(也许可以发布示例输入和输出?):
SELECT unit, COUNT( id ) as count
FROM table1 as t1 JOIN table2 as t2
ON t1.id = t2.id
GROUP BY unit
好的,这里发生了一些事情。 首先,不赞成使用逗号作为联接,因此甚至可能不支持它们(取决于您使用的是什么)。 您可能应该切换到显式编写inner join
现在,只要你有任何形式的参与,还需要on
。 您需要告诉sql如何将这两个表匹配起来。 on应该在加入后立即出现,如下所示:
Select *
From table1 inner join table2
on table1.id = table2.id
and table1.name = table2.name
您可以使用and
随意加入所需的内容。 这意味着,如果一个表的主键是几列,则可以轻松地在表之间创建一对一匹配。
最后,由于查询中存在其他常规语法错误,您可能会遇到问题。 逗号用于分隔不同的信息。 因此,在您的查询中,
SELECT table1.unit, COUNT( id ) as count, table2.id, FROM ...
选择末尾的逗号不应在该处。 相反,这应该读
SELECT table1.unit, COUNT( id ) as count, table2.id FROM ...
这是微妙的,但是sql查询不能使用额外的逗号运行。
另一个问题是您拥有的COUNT( id )
。 sql不知道要计数哪个id,因为table1和table2都有ID。 因此,您应该使用count(table1.id)
或count(table2.id)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.