Mysql

我想從許多沒有外鍵的表中選擇許多列

  • January 24, 2022

我有三個表,我想在沒有外鍵的情況下獲取三個表數據。

假設我有一個表 product_1 包含(id,name)和表 product_2 包含(id,name,price)。

我想在一個查詢中選擇兩個表的列。

我在問是否有任何 MySQL 查詢可以從許多表中選擇許多列?

這是我的程式碼:

SELECT name FROM product1 AND price FROM product2;

我有三個表,我想在沒有外鍵的情況下獲取三個表數據。

認為您的意思是“沒有加入條件”。

這是個壞主意。

如果您不告訴數據庫如何連接兩個表,它將執行笛卡爾連接,即它將第一個表中的每一行與第二個表中的**每一行匹配。

  • 如果您在兩個表中都有行,您將獲得一百 (10 x 10) 行的結果集。
  • 如果您在兩個表中都有一百萬行,您將獲得一萬億(10^6 x 10^6) 行的結果集 - 假設您的數據庫存在足夠長的時間來傳遞它並且您準備等待那麼久!

你添加的表越*多**,*這個乘數就越多!

SELECT a.id, a.name, p.price
   FROM Names  AS a
   JOIN Prices AS p  ON p.id = a.id AND p.name = a.name;

這適用於有或沒有索引,有或沒有FOREIGN KEYs. 但性能更好*。*

引用自:https://dba.stackexchange.com/questions/306461