Hướng dẫn how to get data from another table using foreign key in php - cách lấy dữ liệu từ bảng khác bằng khóa ngoại trong php

Tôi có 2 bảng, một bảng được gọi là posts và một bảng được gọi là users. Bên trong posts Tôi có một số cột, một là chìa khóa nước ngoài của

SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid
1. Trong bảng users của tôi, tôi có một số cột bao gồm
SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid
1 và
SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid
4. Tôi muốn sử dụng
SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid
5 để tìm
SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid
6 và hiển thị
SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid
7. Hiện tại tôi đang sử dụng:

SELECT posts.postid, posts.title, posts.text, posts.link, posts.good, posts.bad, posts.userid
FROM posts

Để lấy dữ liệu về từng bài đăng và,

SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid

Để có được dữ liệu về từng người dùng, nhưng khi tôi làm điều này, đầu ra của

SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid
8 luôn chỉ là người dùng đầu tiên.

Tôi có hai bảng A & B.

Bảng a

id | name | num

Bảng b

id | date | roll

SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid
9 trong Bảng B là một khóa nước ngoài liên quan đến
SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid
9 trong Bảng A.

Tôi muốn lấy nội dung của Bảng B nơi ID được cung cấp và cùng với dữ liệu đó, tôi cần tên có ID được đặt từ Bảng A.

Lưu ý: Không thể sử dụng nhiều truy vấn được phân tách bằng dấu phẩy; Cần thực hiện cả hai

id | name | num
1 trong một truy vấn. cannot use multiple queries separated by commas; need to do both the
id | name | num
1s in one query.

hỏi ngày 11 tháng 2 năm 2016 lúc 17:58Feb 11, 2016 at 17:58

YashasyashasYashas

3351 Huy hiệu vàng3 Huy hiệu bạc12 Huy hiệu đồng1 gold badge3 silver badges12 bronze badges

1

Tham gia bảng là một nguyên tắc cơ bản của cơ sở dữ liệu quan hệ. Trong trường hợp của bạn, A và B có liên quan đến cột

SELECT users.username, users.userid, posts.userid
FROM users, posts
WHERE users.userid = posts.userid
9, điều đó có nghĩa là bạn có thể sử dụng cú pháp tương tự như cái này:

SELECT a.id, a.name, a.num, b.date, b.roll
FROM a
INNER JOIN b ON a.id=b.id;

id | name | num
3 có nghĩa là bạn sẽ chỉ thấy các hàng có các bản ghi phù hợp trong A và B. Nếu bạn muốn tất cả các hàng trong A và các bản ghi phù hợp trong B, bạn có thể thay đổi
id | name | num
3 thành
id | name | num
5. Ngược lại, nếu bạn muốn tất cả các bản ghi từ B và chỉ các bản phù hợp từ A, hãy sử dụng
id | name | num
6. Cuối cùng, nếu bạn cần mọi thứ từ cả hai bảng, phù hợp hay không, bạn có thể sử dụng
id | name | num
7.

Đã trả lời ngày 11 tháng 2 năm 2016 lúc 18:18Feb 11, 2016 at 18:18

Daniel Hutmacherdaniel HutmacherDaniel Hutmacher

8,9071 Huy hiệu vàng21 Huy hiệu bạc51 Huy hiệu đồng1 gold badge21 silver badges51 bronze badges

Để có được kết quả từ hai bảng được liên kết với khóa nước ngoài, bạn cần tham gia các bảng.

Tìm truy vấn dưới đây như bạn muốn kết quả:

SELECT name, date, roll
FROM A
INNER JOIN B
ON A.id = B.id;

Đã trả lời ngày 12 tháng 2 năm 2016 lúc 5:04Feb 12, 2016 at 5:04

GovindgovindGovind

1232 Huy hiệu vàng3 Huy hiệu bạc13 Huy hiệu đồng2 gold badges3 silver badges13 bronze badges

0

Bạn cần tham gia các bảng này để có được kết quả mà bạn muốn.

SELECT b.*, a.name FROM tableB AS b INNER JOIN tableA as A ON [b.id=a.id];

Truy vấn này sẽ trả về mọi thứ từ Bảng B và

id | name | num
8 từ Bảng A trong đó ID từ Bảng B giống như ID từ Bảng A.

Đã trả lời ngày 11 tháng 2 năm 2016 lúc 18:23Feb 11, 2016 at 18:23

Edu C.Edu C.Edu C.

Phim huy hiệu bạc 2311 Huy hiệu đồng1 silver badge4 bronze badges

Để truy xuất dữ liệu từ cả hai bảng được liên kết với khóa nước ngoài, tức là [cột chung], bạn phải tham gia cả hai bảng.

Nếu bạn khớp dữ liệu từ cả hai bảng thì hãy sử dụng tham gia bên trong.

> SELECT A.List_Of_columns,B.List_Of_columns  FROM Table1 AS A   INNER
> JOIN Table2 as B   ON A.ID=B.ID [Here Id is Common in both table].

Nếu bạn muốn khớp dữ liệu từ cả hai bảng cùng với tất cả các bản ghi từ Bảng 1 thì hãy sử dụng tham gia bên trái thay vì tham gia bên trong. Nếu bạn muốn tất cả các bản ghi từ Table2 sử dụng ngay Tham gia.

Đã trả lời ngày 12 tháng 2 năm 2016 lúc 5:28Feb 12, 2016 at 5:28

KD29KD29KD29

531 Huy hiệu vàng2 Huy hiệu bạc9 Huy hiệu đồng1 gold badge2 silver badges9 bronze badges

Làm thế nào tôi có thể lấy dữ liệu từ một bảng khác bằng khóa nước ngoài?

Để truy xuất dữ liệu từ cả hai bảng được liên kết với khóa nước ngoài, tức là [cột chung], bạn phải tham gia cả hai bảng.Nếu bạn khớp dữ liệu từ cả hai bảng thì hãy sử dụng tham gia bên trong.>join both the tables. if you matching data from both table then use INNER JOIN. >

Làm thế nào để tạo bảng với tài liệu tham khảo khóa nước ngoài?

Để tạo một bảng mới chứa một cột khóa nước ngoài tham chiếu một bảng khác, hãy sử dụng các tài liệu tham khảo khóa nước ngoài từ khóa ở cuối định nghĩa của cột đó.Thực hiện theo đó với tên của bảng được tham chiếu và tên của cột được tham chiếu trong ngoặc đơn.use the keyword FOREIGN KEY REFERENCES at the end of the definition of that column. Follow that with the name of the referenced table and the name of the referenced column in parentheses.

Làm thế nào tôi có thể lấy tên từ một bảng khác với ID khớp trong một bảng khác?

Hiển thị tên sản phẩm từ một bảng nếu ID tồn tại trên một câu trả lời mã SQL SQL khác..
Chọn T1.Tên..
Từ Bảng1 T1 ..
Tham gia bên trái TABLE2 T2 trên T2.Tên = T1.Tên..
Ở đâu T2.Tên là NULL ..

Bài Viết Liên Quan

Chủ Đề