Hướng dẫn how can join two tables without common column in mysql? - làm thế nào có thể nối hai bảng mà không có cột chung trong mysql?

Trong hầu hết các truy vấn trong quá trình học tập, chúng tôi thường sử dụng để tham gia các bảng có một số cột hoặc mối quan hệ phổ biến giữa chúng. Nhưng khi nói đến các vấn đề thực tế, thì điều kiện dễ nhất như vậy hiếm khi được tìm thấy. Các nhiệm vụ phức tạp như tham gia hai bảng mà không có cột chung được tìm thấy chủ yếu. & NBSP;

Trước tiên, hãy để một cái nhìn vào các bảng của chúng tôi mà chúng tôi sẽ tham gia vào ví dụ này:

Tạo cơ sở dữ liệu:

Sử dụng câu lệnh SQL dưới đây để tạo cơ sở dữ liệu có tên là Geek:

CREATE DATABASE GFG;

Sử dụng cơ sở dữ liệu:

Sử dụng câu lệnh SQL dưới đây để chuyển bối cảnh cơ sở dữ liệu sang người đam mê:

USE GFG;

Thêm bảng:

Bây giờ chúng tôi tạo hai bảng có tên là Bảng 1 và Bảng2

CREATE TABLE table1
[
    Name1 VARCHAR[20],
    ID1 INT PRIMARY KEY,
    Salary1 INT
];

CREATE TABLE table2
[
    Name2 VARCHAR[20],
    ID2 INT PRIMARY KEY,
    Salary2 INT
];

Bây giờ, thêm dữ liệu vào bảng

INSERT INTO table1
ValUES
['Harish',1,1000],
['Rakesh',2,2000],
['Mukesh',3,3000],
['Suresh',4,4000],
['Ramesh',5,4000];

INSERT INTO table2
VALUES
['Astitva',1,4000],
['Maharaj',2,41000];

Để xác minh nội dung của bảng, hãy sử dụng câu lệnh dưới đây:

Cho Bảng 1:

SELECT * FROM table1;

Cho bảng 2:

SELECT * FROM table2;

Bây giờ như chúng ta có thể thấy, không có hai cột giống nhau trong hai bảng trên. Bây giờ để hợp nhất chúng vào một bảng duy nhất, chúng ta đang có 3 phương pháp khác nhau.

Phương pháp 1 [Tham gia chéo]: Như bạn có thể đã nghe nói về một số lần nối như Join Join, Join Outer tham gia, theo cách tương tự là tham gia chéo, được sử dụng để tạo thành sản phẩm Cartesian của các bảng mà không có hoặc với các cột chung. Vì vậy, vì những lần tham gia này không kiểm tra bất kỳ cột nào chỉ cần họ thực hiện một sản phẩm của hai bảng, vì vậy các kết nối này không được coi là tốt cho bất kỳ truy vấn nào vì sự lặp lại của dữ liệu sẽ được kết quả từ các lần tham gia này. Ngoài ra, sự không nhất quán sẽ ở đó. Nhưng vì chúng tôi quan tâm đến việc biết các phương pháp nên chúng tôi đang thảo luận về nó. As you might have heard of several joins like inner join, outer join, in the same way cross join is there, which is used to form the Cartesian product of the tables without or with common columns. So since these joins doesn’t check for any column just they do a product of the two tables, so these joins are not regarded good for any query since repetition of data will be resulted from these joins. Also, inconsistency would be there. But since we are interested in knowing the methods so we are discussing it.

Để thực hiện tham gia chéo, chúng tôi chỉ được yêu cầu chỉ định tên của bảng trong mệnh đề. Không, nơi cần có mệnh đề.

SELECT * FROM table1, table2;

5*2=10

Phương pháp 2 [Phương pháp Liên minh]: Phương pháp này khác với phương pháp trên vì nó không chỉ đơn thuần là tham gia. Mục đích chính của nó là kết hợp bảng qua phương thức hàng theo hàng. Nó chỉ thêm số lượng hàng duy nhất của hai bảng và đặt tên cho các cột dựa trên bảng đầu tiên được chỉ định trong phương thức. This method is different from the above one as it is not merely a join. Its main aim is to combine the table through Row by Row method. It just adds the number of UNIQUE rows of the two tables and name the columns based on the first table specified in the method.

SELECT *
FROM TABLE1
UNION
SELECT *
FROM TABLE2;

Điều này trả về tất cả các hàng [duy nhất] kết hợp với nhau dưới tên cột của Bảng1.

Chúng tôi cũng có thể truy vấn các cột đơn hoặc đổi tên các cột trong phương thức này như được hiển thị bên dưới:

SELECT salary1 as salary
FROM TABLE1
UNION
SELECT salary2 as salary
FROM TABLE2;

Do đó, chúng tôi có thể chọn tất cả các mức lương có thể và được trao cho các máy khách khác nhau trong hai bảng. Phương pháp này trả về dữ liệu duy nhất.

Phương pháp 3 [Liên minh tất cả]: Sự khác biệt duy nhất giữa phương pháp Union và Unionall là phương pháp trước đó cho phép các hàng không trùng lặp [duy nhất], nhưng sau đó kết quả trong tất cả các hàng có thể bằng cách kết hợp các bản sao.The only difference between the UNION and UNIONALL method is that the previous one allows non-duplicates[unique] rows, but latter one results in all possible rows by combining the duplicates also.

SELECT salary1 as salary
FROM TABLE1
UNION all
SELECT salary2 as salary
FROM TABLE2;

Do đó, chúng tôi có thể thấy ba phương pháp khác nhau để kết hợp bảng với các cột không phổ biến. Những phương pháp này được sử dụng trong các điều kiện riêng biệt như được yêu cầu.

Có một vài cách để kết hợp hai bảng mà không có cột chung bao gồm tham gia chéo [sản phẩm Cartesian] và công đoàn. Đây không phải là một sự tham gia nhưng có thể hữu ích cho việc hợp nhất các bảng trong SQL. Trong bài đăng này, tôi sẽ giải thích các giải pháp khác nhau với các ví dụ.

Đây là ví dụ dưới đây.

Giả sử có một nhà hàng và họ có hai bàn rượu vang và Main_courser trong cơ sở dữ liệu của họ.wine and main_courser in their database.

Bàn rượu chứa ID rượu, tên của rượu, ID nhà cung cấp và giá:wine ID, the name of the wine, the supplier ID, and the price:

TôiTênID nhà cung cấpgiá bán
1 Merlot500 7.95
2 Căn nhà400 2.45
3 Sangiovese600 5.20

Bảng khóa học chính chứa ID khóa học chính, tên khóa học chính, ID nhà cung cấp chính cho bữa ăn này và giá:

TôiTênID nhà cung cấpgiá bán
1 Merlot200 19.99
2 Căn nhà100 8.99
3 Sangiovese300 11.99
4 Bảng khóa học chính chứa ID khóa học chính, tên khóa học chính, ID nhà cung cấp chính cho bữa ăn này và giá:400 15.99

Major_supplier_id
First, we will use the FROM TABLE 1, TABLE 2 Syntax:
We simply join the two tables together with this syntax. Two tables are joined with the help of FROM clause and then use the WHERE clause if necessary.
There is no need to specify any joining conditions if all we want is every combination of rows from two tables. A query like this can be used:

Salmon Maple thảo quả
This query provides a cross join, or cartesian product, with a total number of rows equal to the first table’s number of rows multiplied by the second table’s number of rows.

Macaroni & pho mát cổ điểnGà Teriyaki nướng
MerlotMerlot
Căn nhàMerlot
SangioveseMerlot
MerlotCăn nhà
Căn nhàCăn nhà
SangioveseCăn nhà
MerlotSangiovese
Căn nhàSangiovese

Bảng khóa học chính chứa ID khóa học chính, tên khóa học chính, ID nhà cung cấp chính cho bữa ăn này và giá:

Major_supplier_id

Salmon Maple thảo quả

USE GFG;
1

Macaroni & pho mát cổ điển

Gà Teriyaki nướng

Thịt bò thịt phô mai xanh

Trong ví dụ đầu tiên của chúng tôi, chúng tôi muốn tất cả các kết hợp có thể của rượu vang và khóa học chính cho thực đơn của chúng tôi. Đầu tiên, chúng tôi sẽ sử dụng cú pháp từ Bảng 1, Bảng 2: Chúng tôi chỉ cần tham gia hai bảng cùng với cú pháp này. Hai bảng được nối với sự trợ giúp của mệnh đề và sau đó sử dụng mệnh đề WHERE nếu cần thiết. Không cần phải chỉ định bất kỳ điều kiện tham gia nào nếu tất cả những gì chúng tôi muốn là mọi sự kết hợp của các hàng từ hai bảng. Một truy vấn như thế này có thể được sử dụng:

USE GFG;
0 Truy vấn này cung cấp một sản phẩm tham gia chéo, hoặc sản phẩm Cartesian, với tổng số hàng bằng với số lượng hàng đầu tiên của các hàng nhân với số lượng hàng thứ hai.

rượu

USE GFG;
2

món chính

ID nhà cung cấp
100
200
300
400
500
600

giá bán

Merlot
The data types of the related columns must be the same.
As seen in our example, the related columns can have different names. By default, the first SELECT statement is used to determine the name of the relevant column in the output. The AS keyword can also be used to change the names of the generated columns.

Căn nhà

USE GFG;
3

Sangiovese

ID nhà cung cấp
100
200
300
400
400
500
600

Phần nghiên cứu cung cấp một danh sách lớn các kỳ thi chứng nhận thông qua nền tảng trực tuyến của nó. Kỳ thi chứng nhận của Pháp có thể giúp bạn chứng nhận các kỹ năng của bạn để giao tiếp bằng tiếng Pháp. Cho dù bạn là người mới đối với ngôn ngữ hay bạn là một chuyên gia về nó, kỳ thi chứng nhận Pháp này có thể kiểm tra khả năng của bất kỳ ai chỉ huy đối với ngôn ngữ Pháp.

Làm cách nào để tham gia hai bảng nếu không có cột chung trong MySQL?

3 câu trả lời..
Chúng ta có thể sử dụng sản phẩm Cartesian, Union và sản phẩm chéo để tham gia hai bảng mà không có cột chung ..
Sản phẩm của Cartesian có nghĩa là nó phù hợp với tất cả các hàng của Bảng A với tất cả các hàng của Bảng B. ....
Liên minh trả về sự kết hợp của các bộ kết quả của tất cả các câu lệnh chọn ..

Chúng ta có thể tham gia hai bảng mà không có cột chung không?

Có một vài cách để kết hợp hai bảng mà không có cột chung bao gồm tham gia chéo [sản phẩm Cartesian] và công đoàn.Đây không phải là một sự tham gia nhưng có thể hữu ích cho việc hợp nhất các bảng trong SQL.Cross Join [Cartesian Product] and UNION. This is not a join but can be useful for merging tables in SQL.

Làm cách nào để tham gia hai bảng trong các cột khác nhau trong MySQL?

Điều khoản sử dụng này Tham gia kết hợp Bảng1 với Bảng2 khi hai cột mà cả hai bảng chia sẻ [ID và trạng thái] mỗi bảng có các giá trị phù hợp.Bảng1.ID = Bảng2.ID và Bảng1.trạng thái = Bảng 2.This join combines table1 with table2 when two columns that both tables share [ id and state ] each have matching values. table1.id = table2.id AND table1. state = table2.

Làm cách nào để tham gia hai bảng với các tên cột khác nhau trong SQL?

Nhiều bảng có thể được hợp nhất bởi các cột trong SQL bằng cách sử dụng các kết nối.Tham gia hợp nhất hai bảng dựa trên các cột được chỉ định [thường là khóa chính của một bảng và khóa ngoại của bảng khác].Dưới đây là cú pháp chung của SQL tham gia.Sử dụng [id];using joins. Joins merge two tables based on the specified columns [generally, the primary key of one table and a foreign key of the other]. Below is the generic syntax of SQL joins. USING [id];

Bài Viết Liên Quan

Chủ Đề