[英]In MySQL Workbench, same output shown multiple times and by executing query, output rows increases by one
我有 2 個表:
Citizen_Location
其中有名稱和位置:
包含姓名、年齡和經驗的Citizens
:
所以,我在其中執行了join
操作:
select c.name,cl.location
from citizens as c
join citizen_location as cl;
Output:
***564 row(s)*** returned 0.000 sec / 0.000 sec
每當我點擊執行按鈕時,默認情況下該行會增加 1。 此外,即使執行正常查詢,output 也總是顯示兩次,並且隨着您不斷點擊執行按鈕,它會不斷增加!
我嘗試打開新的查詢選項卡並重新安裝程序,但問題仍然存在。 每次相同的 output 顯示兩次和三次,依此類推。
JOIN
是 SQL 中INNER JOIN
的縮寫。它后面必須跟一個連接條件,它可以是ON
子句,也可以是USING
子句。 你兩者都沒有,所以 MySQL 應該在這里引發語法錯誤。 它可以被認為是 DBMS 中的一個缺陷,但它沒有。
顯然,MySQL 會將您的JOIN
變成CROSS JOIN
,即無條件連接。 因此,您將左表的每一行與右表的每一行連接起來。
您的問題的解決方案很簡單:只需添加一個條件。
select c.name, cl.location
from citizens as c
join citizen_location as cl on cl.name = c.name;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.