簡體   English   中英

內部聯接SQL語法

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM