cuốn sách gpt4 ai đã làm

Mysql IN 关键字

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 11:59:35 29 4
mua khóa gpt4 Nike

Tôi đang cố gắng viết một truy vấn bằng từ khóa IN.

Bảng A nhận dạng thuộc tính, tên thuộc tính

Khóa bảng B, nhận dạng thuộc tính, giá trị thuộc tính

Dựa trên khóa được cung cấp, tôi muốn trả về tất cả các kết hợp attrName, attrVal. Kết quả sẽ chứa các cột từ cả hai bảng. Tôi không muốn sử dụng phép nối attrId vì tôi đang cố gắng thực hành cách sử dụng từ khóa IN.

Dưới đây là các truy vấn tôi đã thử:

Chọn a.attrName, b2.attrVal
từ bảng_A AS a, bảng_B AS b2
trong đó a.attrId in (Chọn b1.attrId từ Table_B b1 trong đó key = )

Nhưng tôi không nhận được bất kỳ kết quả truy vấn nào. Các truy vấn sử dụng từ khóa IN cũng chậm và nên tránh. Tôi có khoảng 500 mục trong bảng_A và 500k mục trong bảng_B. Một tùy chọn khác đối với tôi là lấy tất cả attrIds từ bảng_B và sau đó với mỗi attrId được truy xuất sẽ kích hoạt nhiều truy vấn jdbc để nhận attrName tương ứng. bạn có thể giúp được không? Cảm ơn

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

Truy vấn của bạn đang thực hiện thao tác CROSS JOIN từ Một Mỗi hàng được trả về giống như từ b Trả về mỗi hàng "khớp".

Truy vấn của bạn tương đương với:

CHỌN a.attrName
, b2.attrVal
TỪ bảng_A một
ĐI QUA
THAM GIA bảng_B b2
Ở ĐÂU a.attrId IN ( )

Cách duy nhất truy vấn này không trả về bất kỳ hàng nào là 1) Một không có dòng nào được thỏa mãn WHERE vị ngữ trong mệnh đề, 2) b2 không chứa bất kỳ hàng nào, hoặc 3) việc thực thi truy vấn đã tạo ra nhiều hàng đến mức vượt quá một số tài nguyên có sẵn (chẳng hạn như không gian tạm thời) và trả về lỗi hoặc 4) máy khách Truy vấn hết thời gian hoặc bị hủy trước khi hoàn thành.

Tôi biết bạn đang cố gắng viết một chương trình bằng cách sử dụng IN toán tử, nhưng truy vấn bạn đã đăng trả về một bộ sưu tập thực sự không có nhiều ý nghĩa.


hỏi:Đó là một truy vấn sử dụng từ khóa IN, tốc độ chậm và nên tránh.

trả lời: IN Bản thân toán tử không nhất thiết làm cho truy vấn chậm hơn.

Ví dụ:

CHỌN t.id TỪ mytable t WHERE t.id = 2 HOẶC t.id = 3 HOẶC t.id = 5

可以使用 IN Toán tử được viết lại thành:

CHỌN t.id TỪ mytable t WHERE t.id IN (2,3,5)

Mặt khác, nếu 1) truy vấn con chậm và/hoặc 2) có nhiều hàng bắt buộc thì truy vấn con phải được đánh giá.


Nếu bạn muốn bắt đầu từ b Trả về các hàng đáp ứng các tiêu chí nhất định và sau đó kết hợp chúng với Một Bạn nên tránh các dòng phù hợp trong THAM GIA CHÉO hoạt động, bằng cách cung cấp một số điều kiện để khớp (ON vị ngữ nối trong mệnh đề)

Ví dụ:

CHỌN a.attrName
, b.attrVal
TỪ bảng_A một
THAM GIA bảng_B b
TRÊN a.attrId = b.attrId
Ở ĐÂU b.key = ''

Về từ khóa Mysql IN, 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/30159570/

29 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
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