sách gpt4 ăn đã đi

mysql - chọn các giá trị trên một cột có cùng bộ giá trị trên cột khác

In lại Tác giả: Walker 123 Thời gian cập nhật: 29-11-2023 09:49:12 27 4
mua khóa gpt4 giày nike

Tôi có một "bảng mối quan hệ" lưu trữ bài đăng nào có thẻ nào. Giống như Stack Overflow, một bài đăng có thể có nhiều thẻ và một thẻ có thể có nhiều bài đăng.

Bảng chỉ có hai cột, như hiển thị bên dưới:

thời gian pid

1 3
1 4

2 1
2 3
2 4

3 1
3 3
3 4

4 1
4 3

5 1
5 3

6 2
6 4

Trong bảng trên, bài 2 và 3 có cùng bộ thẻ (cột khác thời gian value), cũng như bài viết 4 và 5.

Tôi muốn chọn tất cả các bài đăng (id bài đăng) có cùng nội dung thời gian tập hợp một bài đăng khác, vì vậy truy vấn sẽ trả về từ cột 2 3 4 5 pid

Tôi đang chạy trên MariaDB 10.1.38.

Đây là nỗ lực của riêng tôi, rõ ràng là đã thất bại:

CHỌN p.pid
TỪ post_tags NHƯ p
NƠI TỒN TẠI (
LỰA CHỌN *
TỪ post_tags AS p2
Ở ĐÂU
GROUP_CONCAT(p.tid SEPARATOR ',') = GROUP_CONCAT(p2.tid SEPARATOR ',')
NHÓM THEO p2.pid
)
NHÓM THEO p.pid;

MariaDB đã nói với tôi:

LỖI 1111 (HY000): Sử dụng hàm nhóm không hợp lệ

câu trả lời hay nhất

NHÓM_CONCAT() là một hàm tổng hợp, vì vậy bạn không thể Ở ĐÂU mệnh đề vì nó được áp dụng trong LỰA CHỌN mệnh đề được tính toán (điều này xảy ra khi Ở ĐÂU sau đó).

Cũng lưu ý rằng bạn nên NHÓM_CONCAT() Thêm vào chức năng ĐẶT HÀNG THEO. Thứ tự không được đảm bảo trong cơ sở dữ liệu quan hệ trừ khi bạn chỉ định khác.

Bạn có thể làm điều này:

CHỌN t1.pid TỪ 
(
LỰA CHỌN
pid, GROUP_CONCAT(tid ORDER BY tid) AS gctid
TỪ t t1
NHÓM THEO pid
) t1
THAM GIA (
LỰA CHỌN
pid, GROUP_CONCAT(tid ORDER BY tid) AS gctid
TỪ t t1
NHÓM THEO pid
) t2 TRÊN t1.pid != t2.pid VÀ t1.gctid = t2.gctid

Về mysql - Chọn các giá trị trên một cột có cùng bộ giá trị trên cột khác, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/55122929/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress