Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để lấy một tập dữ liệu từ truy vấn SQL từ nhiều bảng?

Tôi sẽ cố gắng trả lời chỉ bằng SQL.

Sử dụng group_concat riêng biệt,

select t.id,name,phone,
 group_concat(distinct a.addr separator ',') as address,
 group_concat(distinct c.cat separator ',') as category
  from table1 t
  left join address a 
    on t.id = a.refid
  left join category c
    on t.id = c.refid
  group by t.id,name, phone

HOẶC

Như cột nội dòng,

select t.id,name,phone,
 (select group_concat(a.addr separator ',')
    from address a 
   where a.refid = t.id) as address,
 (select group_concat(c.cat separator ',') 
    from category c
   where c.refid = t.id) as category
  from table1 t

Tham khảo Db <> fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố với việc đọc tập lệnh VBA từ cơ sở dữ liệu MySql

  2. Tối ưu hóa truy vấn CẬP NHẬT MySQL có chứa WHERE và ORDER BY?

  3. Cập nhật hàng SQL mà không cần biết tên cột

  4. Gặp lỗi khi cố gắng Điền vào menu thả xuống HTML bằng dữ liệu Mysql trong Java?

  5. Tạo đối tượng Ngày trong PHP cho các ngày trước năm 1970 ở định dạng nhất định