Hướng dẫn select column from another table mysql - chọn cột từ một bảng mysql khác

Tôi có một bảng có tên

SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
3 với 3 cột:
SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
4,
SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
5 và
SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
6.

Một bảng khác có tên

SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
7 được khóa bởi
SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
8 và có
SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
9 làm cột.

Tôi muốn chọn một cái gì đó dọc theo các dòng của:

SELECT maintable.*, users.name AS username1, users.name AS username2 
FROM maintable, users 
WHERE ...

Về cơ bản, tôi muốn có được tất cả các cột trong hàng

SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
3 và thêm hai cột ở cuối sẽ vẽ tên cho
SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
5 và
SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
6 từ bảng
SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
7.

Tôi không chắc làm thế nào để định dạng mệnh đề nơi cho một truy vấn như thế này.

Zuul

16.1k6 Huy hiệu vàng60 Huy hiệu bạc88 Huy hiệu Đồng6 gold badges60 silver badges88 bronze badges

hỏi ngày 15 tháng 2 năm 2011 lúc 17:27Feb 15, 2011 at 17:27

Bạn cần tham gia hai lần với người dùng:

SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]

Bạn có thể đọc tài liệu về cú pháp tham gia MySQL tại đây.

Zuul

16.1k6 Huy hiệu vàng60 Huy hiệu bạc88 Huy hiệu Đồng6 gold badges60 silver badges88 bronze badges

hỏi ngày 15 tháng 2 năm 2011 lúc 17:27Feb 15, 2011 at 17:31

Bạn cần tham gia hai lần với người dùng:Pablo Santa Cruz

Bạn có thể đọc tài liệu về cú pháp tham gia MySQL tại đây.32 gold badges238 silver badges291 bronze badges

8

Đã trả lời ngày 15 tháng 2 năm 2011 lúc 17:31

select m.*,
[select u1.name from users as u1 where m.userid1 = u1.userid] as username1,
[select u2.name from users as u2 where m.userid2 = u2.userid] as username2
from 
maintable as m

Pablo Santa Cruzpablo Santa CruzFeb 15, 2011 at 17:36

173K32 Huy hiệu vàng238 Huy hiệu bạc291 Huy hiệu ĐồngPaulraj

một cái gì đó như thế này,3 gold badges38 silver badges40 bronze badges

3

Đối với điều này, bạn có thể sử dụng Subquery cùng với tồn tại. Trước tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1
   -> [
   -> Id int,
   -> SubjectName varchar[20]
   -> ];
Query OK, 0 rows affected [0.58 sec]

Chèn một số bản ghi trong bảng bằng lệnh chèn -

mysql> insert into DemoTable1 values[111,'MySQL'];
Query OK, 1 row affected [0.12 sec]
mysql> insert into DemoTable1 values[112,'MongoDB'];
Query OK, 1 row affected [0.15 sec]
mysql> insert into DemoTable1 values[113,'Java'];
Query OK, 1 row affected [0.17 sec]
mysql> insert into DemoTable1 values[114,'C'];
Query OK, 1 row affected [0.27 sec]
mysql> insert into DemoTable1 values[115,'MySQL'];
Query OK, 1 row affected [0.23 sec]

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn -

mysql> select * from DemoTable1;

Điều này sẽ tạo ra đầu ra sau -

+------+-------------+
| Id   | SubjectName |
+------+-------------+
|  111 | MySQL       |
|  112 | MongoDB     |
|  113 | Java        |
|  114 | C           |
|  115 | MySQL       |
+------+-------------+
5 rows in set [0.00 sec]

Đây là truy vấn để tạo bảng thứ hai -

mysql> create table DemoTable2
    -> [
    -> FirstName varchar[20],
    -> StudentSubject varchar[20]
    -> ];
Query OK, 0 rows affected [0.73 sec]

Chèn một số bản ghi trong bảng bằng lệnh chèn -

mysql> insert into DemoTable2 values['Chris','MySQL'];
Query OK, 1 row affected [0.13 sec]
mysql> insert into DemoTable2 values['Bob','MySQL'];
Query OK, 1 row affected [0.12 sec]
mysql> insert into DemoTable2 values['Sam','MySQL'];
Query OK, 1 row affected [0.12 sec]
mysql> insert into DemoTable2 values['Carol','C'];
Query OK, 1 row affected [0.19 sec]

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn -

mysql> select * from DemoTable2;

Điều này sẽ tạo ra đầu ra sau -

SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
0

Đây là truy vấn để tạo bảng thứ hai -

SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
1

Điều này sẽ tạo ra đầu ra sau -

SELECT m.*, u1.name, u2.name
FROM maintable m 
INNER JOIN users u1 ON [m.userid1 = u1.userid]
INNER JOIN users u2 ON [m.userid2 = u2.userid]
2

Đây là truy vấn để tạo bảng thứ hai -

  • Dưới đây là truy vấn để chọn dữ liệu từ một bảng chỉ trong đó các giá trị cột từ bảng đó khớp với các giá trị cột của bảng khác -
  • Cập nhật vào ngày 11 tháng 12 năm 2019 06:23:25
  • Câu hỏi và câu trả lời liên quan
  • Làm cách nào để chèn từ một bảng MySQL vào một bảng khác và đặt giá trị của một cột?
  • Sao chép các giá trị cột từ một bảng vào một ID phù hợp khác trong MySQL
  • Chèn các giá trị vào bảng bằng MySQL Chọn từ một bảng khác trong MySQL?
  • Cập nhật bảng MySQL với các giá trị từ một bảng khác?
  • Cập nhật dữ liệu trong một bảng từ dữ liệu trong một bảng khác trong MySQL?
  • Làm thế nào chúng ta có thể cập nhật các giá trị trong một bảng MySQL bằng cách sử dụng các giá trị của bảng MySQL khác?
  • Làm thế nào để chúng tôi đếm các bản ghi từ bảng MySQL nơi cột giữ dữ liệu trùng lặp/ba?
  • Chèn dữ liệu từ bảng này sang bảng khác trong MySQL?
  • MySQL Chọn truy vấn để chọn hàng từ một bảng không có trong một bảng khác?
  • Làm thế nào để chèn các giá trị từ bảng này sang bảng khác trong PostgreSQL?
  • Chúng ta có thể thêm một cột vào một bảng từ một bảng khác trong MySQL không?
  • Truy vấn MySQL để chọn trung bình từ cột khác nhau của bảng?
  • Câu lệnh MySQL để sao chép dữ liệu từ một bảng và chèn vào một bảng khác

Bài Viết Liên Quan

Chủ Đề