簡體   English   中英

在 MySQL Workbench 中,多次顯示相同的 output 並通過執行查詢,output 行增加一

[英]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 顯示兩次和三次,依此類推。

我這樣得到 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.

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