Làm cách nào tôi có thể lấy hai dữ liệu từ một bảng trong php?

Chúng tôi sẽ tạo một bảng có tên "MyGuests", với năm cột. "id", "firstname", "lastname", "email" và "reg_date"

TẠO BẢNG MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
tên VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

Ghi chú ở bảng trên

Kiểu dữ liệu chỉ định loại dữ liệu mà cột có thể chứa. Để có tham chiếu đầy đủ về tất cả các loại dữ liệu có sẵn, hãy truy cập tham chiếu Loại dữ liệu của chúng tôi

Sau kiểu dữ liệu, bạn có thể chỉ định các thuộc tính tùy chọn khác cho mỗi cột

  • NOT NULL - Mỗi hàng phải chứa một giá trị cho cột đó, giá trị null không được phép
  • Giá trị MẶC ĐỊNH - Đặt giá trị mặc định được thêm vào khi không có giá trị nào khác được chuyển
  • UNSIGNED - Được sử dụng cho các loại số, giới hạn dữ liệu được lưu trữ ở số dương và số không
  • TĂNG TỰ ĐỘNG - MySQL tự động tăng giá trị của trường lên 1 mỗi lần thêm bản ghi mới
  • KHÓA CHÍNH - Được sử dụng để xác định duy nhất các hàng trong bảng. Cột có cài đặt PRIMARY KEY thường là số ID và thường được sử dụng với AUTO_INCREMENT

Mỗi bảng nên có một cột khóa chính (trong trường hợp này. cột "id"). Giá trị của nó phải là duy nhất cho mỗi bản ghi trong bảng

Trong phần trước của loạt bài về MySQL này, tôi đã trình bày cách bạn có thể tìm nạp dữ liệu bằng các mệnh đề MySQL. Trong phần này chúng ta sẽ tìm hiểu về hàm Joins trong MySQL, tại sao chúng được sử dụng và cách sử dụng chúng. Bắt đầu nào

Làm cách nào tôi có thể liên kết hai bảng trong MySQL

MySQL Joins cho phép bạn truy cập dữ liệu từ nhiều bảng. Tham gia MySQL được thực hiện bất cứ khi nào hai hoặc nhiều bảng được tham gia trong câu lệnh SQL. Tham gia MySQL bao gồm. MySQL Inner Join (còn được gọi là Simple Join), MySQL Left Outer Join (còn được gọi là Left Join, nó trả về các bản ghi phù hợp từ bảng bên trái), Right Join (điều này trả về các bản ghi phù hợp từ bảng bên phải), . Sử dụng MySQL THAM GIA, bạn sẽ có thể tham gia nhiều hơn hai bảng

Trong MySQL, Tham gia bên trong là Tham gia mặc định. Trên các từ khóa đã cho tại thời điểm đó, nó chọn tất cả các hàng từ cả hai bảng, miễn là có tọa độ giữa các cột trong cả hai bảng

Không giống như SQL, MySQL không coi Outer Join là một loại Join riêng biệt. Để có được kết quả tương tự như Outer Join, bạn cần tham gia Left Outer Join và Right Outer Join

Có bao nhiêu bảng có thể được tham gia trong MySQL

Theo tài liệu chính thức của MySQL 8. 0, số lượng bảng tối đa trong câu lệnh THAM GIA là 61. Tuy nhiên, lưu ý rằng các câu lệnh THAM GIA có thể yêu cầu nhiều tài nguyên máy chủ khi số lượng bảng tăng lên. Nếu trường hợp này xảy ra với truy vấn của bạn, tôi thực sự khuyên bạn nên chia nó thành nhiều truy vấn để giảm tải cho máy chủ

Hãy để chúng tôi bắt đầu bằng cách thêm một bảng mới trong cơ sở dữ liệu của chúng tôi, bảng này sẽ chứa thông báo cùng với ID người dùng đã gửi thông báo này, chúng tôi sẽ đặt tên cho nó là thông báo. Lược đồ của bảng của chúng tôi là

TẠO BẢNG `message` (

`id` int(11) KHÔNG NULL,

`message` varchar(255) NOT NULL

)

Chúng tôi sẽ sử dụng cùng chức năng selectdata mà chúng tôi đã tạo trong phần thô của mình. tập tin php. Bây giờ chúng ta hãy bắt đầu bằng cách tham gia hai bảng này. Bạn cũng có thể điền vào bảng của mình để bạn có thể thực hành nó

Ngừng lãng phí thời gian trên máy chủ

Cloudways xử lý việc quản lý máy chủ cho bạn để bạn có thể tập trung vào việc tạo các ứng dụng tuyệt vời và giữ cho khách hàng của mình hài lòng

tham gia bên trong

Inner Join tham gia bảng theo cách nó chỉ hiển thị những kết quả phù hợp với điều kiện được đưa ra và ẩn những kết quả khác. Cấu trúc của các truy vấn Inner Join là

CHỌN tên_cột

TỪ bảng1

INNER THAM GIA bảng2

TRÊN bảng1. cột_name=bảng2. tên cột dọc;

Tham gia bên trong và tham gia đơn giản cả hai đều giống nhau. Bạn cũng có thể viết truy vấn của mình như thế này

CHỌN tên_cột

TỪ bảng1

THAM GIA bảng2

TRÊN bảng1. cột_name=bảng2. tên cột dọc;

Bây giờ, hãy để chúng tôi lấy Tên và thông báo từ cơ sở dữ liệu của chúng tôi bằng cách sử dụng Tham gia bên trong. Truy vấn sẽ như thế này

$sql = "SELECT CONCAT(myguests.firstname,' ',myguests.lastname) AS name, myguests.email, messages.message 
From myguests 
INNER JOIN messages 
ON myguests.id = messages.id";

Hàm CONCAT dùng để nối hai cột chuỗi trong MySQL. Bây giờ hãy mở chỉ mục của bạn. php mà chúng tôi đã tạo trước đó, sao chép đoạn mã sau vào đó

fetch_assoc())

		{

			echo "";

			echo "";

			echo "";

			if($row['message'] === null){echo "";} else { echo ""; } ;

			echo "";

		}

	}

	else

		{

			echo $result;

	}

?>



	

		   Name

		   Email

		   Message

		

	

" . $row['name'] . "" . $row['email'] . "" .  'null'. "" .  $row['message']. "

?>

Khi bạn chạy trang này trên máy chủ lưu trữ web PHP, kết quả của bạn sẽ như thế này

Như bạn có thể thấy rõ, nó chỉ trả về những kết quả khớp với user_id và những thông báo không phải là null

QUYỀN THAM GIA

RIGHT JOIN nối hai bảng theo cách nó trả về tất cả giá trị từ bên phải và giá trị khớp từ các bảng bên trái, đồng thời trả về null trên bảng bên trái khi không tìm thấy kết quả khớp. Cấu trúc cho RIGHT JOIN là

CHỌN tên_cột

TỪ bảng1

QUYỀN THAM GIA bảng2

TRÊN bảng1. cột_name=bảng2. tên cột dọc;

Bây giờ, hãy để chúng tôi lấy Tên và thông báo từ cơ sở dữ liệu của chúng tôi, tạo thông báo ở bảng bên phải và myguests ở bảng bên trái của chúng tôi

$sql = "SELECT CONCAT(myguests.firstname,' ',myguests.lastname) AS name, myguests.email, messages.message 
From myguests 
RIGHT JOIN messages 
ON messages.id = myguests.id";

Bây giờ hãy mở chỉ mục. php và thay thế truy vấn $sql bằng truy vấn trên. Khi bạn chạy nó, kết quả của bạn sẽ là

Nếu bạn xem bảng thông báo, bạn sẽ thấy một số ID không khớp với bất kỳ ID người dùng nào, đó là lý do tại sao truy vấn này trả về giá trị rỗng trong cột tên và email trong đó nó sẽ không tìm thấy bất kỳ kết quả khớp nào ở cột bên trái

CHỖ NỐI BÊN TRÁI

LEFT Joins nối hai bảng theo cách nó trả về tất cả giá trị từ bảng bên trái và giá trị khớp từ bảng bên phải, đồng thời trả về null trên bảng bên phải khi không tìm thấy kết quả khớp. Cấu trúc cho LEFT JOIN là

CHỌN tên_cột

TỪ bảng1

TRÁI THAM GIA bảng2

TRÊN bảng1. cột_name=bảng2. tên cột dọc;

Bây giờ, hãy để chúng tôi lấy Tên và thông báo từ cơ sở dữ liệu của chúng tôi, tạo thông báo ở bảng bên phải và myguests ở bảng bên trái của chúng tôi

$sql = "SELECT CONCAT(myguests.firstname,' ',myguests.lastname) AS name, myguests.email, messages.message 
From myguests 
LEFT JOIN messages 
ON messages.id = myguests.id";

Bây giờ hãy mở chỉ mục. php và truy vấn thay cho $sql ở trên. Khi bạn chạy nó, kết quả của bạn sẽ là

Nếu bạn xem bảng thông báo, bạn sẽ tìm thấy một số ID không khớp với bất kỳ ID người dùng nào, đó là lý do tại sao truy vấn này trả về giá trị rỗng trong cột Tin nhắn trong đó nó sẽ không tìm thấy bất kỳ kết quả nào trong cột bên phải

LIÊN HIỆP

UNION trong MySQL được sử dụng để liên kết nhiều cột từ các bảng khác nhau thành một cột duy nhất. Cấu trúc của truy vấn UNION để chọn các giá trị duy nhất là

CHỌN (các) cột_name TỪ bảng1

LIÊN HIỆP

CHỌN (các) tên_cột TỪ bảng2;

Và để chọn các giá trị lặp lại từ các cột là

CHỌN (các) cột_name TỪ bảng1

CÔNG ĐOÀN TẤT CẢ

CHỌN (các) tên_cột TỪ bảng2;

Bây giờ, hãy để chúng tôi lấy ID từ các bảng của chúng tôi

$sql = "SELECT id FROM myguests 
UNION 
SELECT id FROM messages";

Bây giờ hãy mở chỉ mục. php và thay thế truy vấn $sql bằng truy vấn trên. Khi bạn chạy nó, kết quả của bạn sẽ là

Truy vấn đã tìm nạp cho chúng tôi tất cả các ID duy nhất được tìm thấy trong cả hai bảng

Cross JOIN hoặc Cartesian Product

Kiểu THAM GIA này trả về tích đề các của các hàng từ các bảng trong Tham gia. Nó sẽ trả về một bảng bao gồm các bản ghi kết hợp từng hàng từ bảng đầu tiên với từng hàng của bảng thứ hai

Cú pháp THAM GIA chéo là,

SELECT column-name-list

from table-name1

CROSS JOIN

table-name2;

TỰ THAM GIA

Tự THAM GIA là một phép nối thông thường, nhưng bảng được nối với chính nó

SELECT column_name(s)

FROM table1 T1, table1 T2

WHERE condition;

THAM GIA NGOÀI ĐẦY ĐỦ

Từ khóa FULL OUTER JOIN trả về tất cả các bản ghi khi có sự trùng khớp trong các bản ghi bảng bên trái (bảng 1) hoặc bên phải (bảng 2)

Ghi chú. FULL OUTER JOIN có khả năng trả về các tập kết quả rất lớn

SELECT column_name(s)

FROM table1

FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;

Làm cách nào tôi có thể lấy hai dữ liệu từ một bảng trong php?

Tham gia nhiều bàn

Trong các blog trước, bạn đã học cách nối hai bảng với nhau bằng cách sử dụng các truy vấn nối SQL khác nhau. Nhưng nếu bạn đang làm việc trên một ứng dụng lớn, tôi. e. xây dựng một cửa hàng thương mại điện tử và tạo nhiều bảng trong đó như khách hàng, đơn đặt hàng và sản phẩm, chắc chắn có thể phát sinh sự phức tạp trong việc nối các bảng. Để giải quyết vấn đề này, bạn cần lấy tất cả các sản phẩm được đặt hàng bởi các khách hàng cụ thể. Lược đồ đứng như nhau nên tôi không khai báo ở đây. Hãy xem truy vấn

________số 8

Trước tiên, chúng tôi tham gia bảng 1 và bảng 2, bảng này cung cấp một bảng tạm thời có dữ liệu kết hợp từ bảng 1 và bảng 2, tại thời điểm đó, bảng này được nối với bảng 3. Phương trình này có thể được mở rộng cho hơn 3 bảng thành N bảng, Bạn chỉ cần đảm bảo rằng truy vấn SQL phải có N-1 câu lệnh nối để sắp xếp để nối N bảng

Truy vấn trên sẽ cho phép bạn khớp các hàng từ bảng 1 (trong mọi trường hợp) với các hàng của hai bảng khác. Sử dụng LEFT JOIN cho phép bạn nối bảng2 và bảng3 với bảng1 (không chỉ bảng2 với bảng1 và bảng3 với bảng2).
Bạn cũng có thể thêm các điều kiện như WHERE, AND và ORDERBY

SELECT * FROM table1

LEFT JOIN table2

   ON table2.id = table1.id

LEFT JOIN table3

   ON table3.id = table2.id

WHERE month = 'numberHere'

   AND (table2.email IS NOT NULL OR table3.email IS NOT NULL)

ORDER BY submitdate DESC

Phần kết luận

Trong hướng dẫn này, chúng ta đã học về phép nối được sử dụng rất nhiều trong cơ sở dữ liệu quan hệ. Tham gia không chỉ được sử dụng cho hai bảng và bạn có thể tham gia nhiều hơn hai bảng bằng cách sử dụng cùng một kỹ thuật. Trong phần tám và cũng là phần cuối cùng của loạt bài về MySQL này, tôi sẽ thảo luận về cách sử dụng Biểu thức chính quy (REGEX) để tìm nạp và sắp xếp dữ liệu trong MySQL. Vì thế, hãy đăng ký nhận bản tin blog của chúng tôi và bạn cũng có thể đăng ký Ngăn xếp PHP được quản lý của chúng tôi và bắt đầu thử nghiệm các hướng dẫn này trên các máy chủ được tối ưu hóa PHP của chúng tôi

Q. Làm cách nào để nối hai bảng lại với nhau?

trả lời. Tham gia hai bảng trong SQL có thể được thực hiện theo bốn cách chính. Inner Join (trả về các hàng có cột phù hợp), Left Join (TẤT CẢ bản ghi trong bảng bên trái và bản ghi phù hợp trong bảng bên phải), Right Join (TẤT CẢ bản ghi trong bảng bên phải và bản ghi phù hợp trong bảng bên trái) và Union (xóa

Q. Bạn có thể sử dụng lệnh SQL nào để nối hai bảng?

trả lời. Hai bảng có thể được nối bằng cách sử dụng câu lệnh INNER JOIN trả về các bản ghi phù hợp từ cả hai bảng

Q. Làm cách nào để tham gia hai bảng trong SQL mà không tham gia?

trả lời. Bạn có thể sử dụng câu lệnh sau để nối các bảng mà không thực sự sử dụng câu lệnh THAM GIA

fetch_assoc())

		{

			echo "";

			echo "";

			echo "";

			if($row['message'] === null){echo "";} else { echo ""; } ;

			echo "";

		}

	}

	else

		{

			echo $result;

	}

?>



	

		   Name

		   Email

		   Message

		

	

" . $row['name'] . "" . $row['email'] . "" .  'null'. "" .  $row['message']. "

?>
0

Đánh giá của khách hàng tại

Làm cách nào tôi có thể lấy hai dữ liệu từ một bảng trong php?

“Dịch vụ lưu trữ trên nền tảng đám mây có một trong những dịch vụ khách hàng tốt nhất và tốc độ lưu trữ”

Sanjit C [Nhà phát triển trang web]

Làm cách nào tôi có thể lấy hai dữ liệu từ một bảng trong php?

Shahzeb Ahmed

Shahzeb là Nhà tiếp thị kỹ thuật số có nền tảng Kỹ thuật phần mềm, làm việc với tư cách là Người quản lý cộng đồng — Cộng đồng PHP tại Cloudways. Anh ấy có tham vọng phát triển và mong muốn học hỏi & chia sẻ thông tin về Phát triển PHP & Laravel thông qua thực hành và thử nghiệm. Anh ấy thích đi du lịch và khám phá những ý tưởng mới bất cứ khi nào anh ấy có thời gian. Hãy liên hệ với anh ấy tại [email được bảo vệ]

Làm cách nào để lấy nhiều dữ liệu từ một bảng trong MySQL?

Bạn có thể sử dụng nhiều bảng trong một truy vấn SQL duy nhất của mình. Hành động tham gia trong MySQL đề cập đến việc đập hai hoặc nhiều bảng thành một bảng. Bạn có thể sử dụng THAM GIA trong các câu lệnh CHỌN, CẬP NHẬT và XÓA để tham gia các bảng MySQL . Chúng ta sẽ thấy một ví dụ về LEFT JOIN cũng khác với MySQL JOIN đơn giản.

Làm cách nào để lấy hai dữ liệu từ một bảng trong SQL?

Trong SQL, chúng ta cũng có thể truy xuất dữ liệu từ nhiều bảng bằng cách sử dụng CHỌN với nhiều bảng , điều này thực sự dẫn đến THAM GIA CHÉO tất cả các bảng. Bảng kết quả xảy ra từ CROSS JOIN của hai chứa tất cả các tổ hợp hàng của bảng thứ 2 là sản phẩm của Cartesian của các bảng.

Làm cách nào để gọi hai bảng trong PHP?

Trong bài viết này, chúng ta sẽ nối hai bảng bằng PHP và hiển thị chúng trên trang web. .
Tạo một cơ sở dữ liệu có tên là cơ sở dữ liệu và tạo các bảng (student_address và student_marks)
Chèn bản ghi vào hai bảng bằng PHP
Viết truy vấn SQL để thực hiện tất cả các phép nối bằng PHP
Quan sát kết quả