[英]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.