Trong MySQL:Chọn các hàng từ một bảng nơi hàng trong một bảng với cùng id có một giá trị đặc biệt trong một cột
Nếu chúng ta có hai bảng:
comments
key | value
=================
1 | foo
2 | bar
3 | foobar
4 | barfoo
và:
meta
comment_key | value
=========================
1 | 1
2 | 1
3 | 2
4 | 1
Tôi muốn nhận các nhận xét từ bảng comment
có tương ứng comment_key
trong bảng meta
cócụ thể 10 (cột value
trong bảng meta
).
Ví dụ, tôi muốn chọn tất cả các hàng từ bảng comment
rằng có một value
của 1
trong bảng meta
:
tôi mong đợi những kết quả này:
key | value
=================
1 | foo
2 | bar
4 | barfoo
Và nếu tôi chọn tất cả các hàng từ bảng comment
có một số value
trong số 2
trong bảng meta
:
Tôi mong đợi kết quả này:
key | value
=================
3 | foobar
Tôi thực sự hy vọng ai đó có thể giúp đỡ, cảm ơn tất cả các bạn trước!
Tôi nghĩ mình cần tham gia? Bất kỳ con trỏ nào sẽ là tuyệt vời, và nếu có thể, một lời giải thích ngắn để tôi có thể làm việc ra nơi tôi đã đi sai -> vì vậy tôi sẽ biết trong thời gian tới!
- không quan trọng nếu các biến vị ngữ 'join',' exist' hoặc 'in' được sử dụng, chúng đều là Semi Joins - được định nghĩa là các tham gia trả về các hàng từ một bảng dựa trên sự tồn tại của các hàng liên quan trong một bảng khác. –
@JCooper: Tôi không thấy nó theo cách đó. Giả sử rằng đối với mỗi bản ghi trong 'parent', có 0, một hoặc nhiều hơn một bản ghi trong' child'. Sau đó, một phép nối bán sẽ bao gồm số không hoặc một bản sao của mỗi bản ghi 'cha', trong khi một câu lệnh SQL INNER JOIN sẽ bao gồm nhiều bản sao của một số bản ghi' cha mẹ'. Nhưng tôi có thể thấy nó theo cách của bạn. Trong đại số quan hệ, một bán kết nối tương đương với một tham gia bên trong theo sau là một phép chiếu thích hợp; vì vậy chúng ta có thể coi đây là sự khác biệt giữa dự đoán SQL 'SELECT' và đại số quan hệ thay vì giữa SQL' INNER JOIN' và tham số bán đại số quan hệ. – ruakh
Wow, tôi đã rất gần, tôi chỉ có '=' thay vì 'IN'! Cảm ơn bạn, làm việc một điều trị! –