Nói rằng tôi có một bảng như vậypostgresql tự tham gia
id | device | cmd | value |
------+----------------+-------+---------
id = unique row ID
device = device identifier (mac address)
cmd = some arbitrary command
value = value of corresponding command
Tôi muốn bằng cách nào đó tự tham gia vào bảng này để lấy cmds cụ thể và giá trị tương ứng của họ đối với một thiết bị cụ thể.
Tôi không muốn chỉ SELECT cmd,value FROM table WHERE device='00:11:22:33:44:55';
Giả sử các giá trị Tôi muốn tương ứng với getname
và getlocation
lệnh. Tôi muốn có kết quả đầu ra giống như
mac | name | location
--------------------+-----------+------------
00:11:22:33:44:55 | some name | somewhere
My sql fu is pretty pants. Tôi đã thử các kết hợp khác nhau như SELECT a.value,b.value FROM table AS a INNER JOIN table AS b ON a.device=b.device
nhưng tôi không nhận được đâu.
Cảm ơn bạn đã được trợ giúp.
Cảm ơn vì điều đó. Tôi cho rằng nếu tôi muốn bốn giá trị thay vì hai, tôi cần ba JOIN? – tbh1
Có, nhưng có thể bạn muốn xem xét lại cấu trúc cơ sở dữ liệu của mình nếu điều này quan trọng ;-) –
Một khả năng khác là sử dụng nhóm và sắp xếp chúng trong danh sách lựa chọn. –