Mysql
我想從許多沒有外鍵的表中選擇許多列
我有三個表,我想在沒有外鍵的情況下獲取三個表數據。
假設我有一個表 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
. 但性能更好*。*