Ngay bây giờ tôi có truy vấn sau đây:truy vấn mysql: SELECT DISTINCT column1, GROUP BY column2
SELECT name, COUNT(name), time, price, ip, SUM(price)
FROM tablename
WHERE time >= $yesterday
AND time <$today GROUP BY name
Và những gì tôi muốn làm là thêm một DISTINCT theo cột 'ip', tức là
SELECT DISTINCT ip FROM tablename
Vì vậy, kết quả cuối cùng của tôi sẽ là tất cả các cột, từ tất cả các hàng mà thời gian là ngày hôm nay, được nhóm theo tên (với số lượng tên cho mỗi tên lặp lại) và không có địa chỉ IP trùng lặp.
Truy vấn của tôi trông như thế nào? (Hoặc cách khác, làm thế nào tôi có thể thêm bộ lọc còn thiếu vào đầu ra với php)?
Xin cảm ơn trước.
[UPDATE]
Để giảm thiểu sự nhầm lẫn, xem xét việc này (giản thể) bảng db:
| name | ip |
---------------------
| mark | 123 |
| mark | 123 |
| mark | 456 |
| dave | 789 |
| dave | 087 |
Kết quả Tôi đang tìm sẽ được một bảng HTML nhìn như thế này:
| name | name count |
----------------------------
| mark | 2 |
| dave | 2 |
Tôi hiện đang nhận được:
| name | name count |
----------------------------
| mark | 3 |
| dave | 2 |
(đánh dấu là 3 lần, mặc dù hai lần có cùng một ip).
Tôi cũng đã cố gắng ip DISTINCT CHỌN TỪ (SELECT tên, COUNT (tên), thời gian, giá cả, ip, SUM (giá) TỪ tablename ĐÂU thời gian> = $ ngày hôm qua và thời gian <$ ngày nay GROUP BY name) dưới dạng TABLE Nhưng tôi nhận được lỗi cú pháp ... –
** Thử: ** CHỌN DISTINCT ** TABLE.ip ** FROM (SELECT T.name, COUNT (T.name), T.time , T.price, T.ip, SUM (T.price) TỪ tablename T WHERE time> = $ hôm qua VÀ thời gian <$ today GROUP BY name) dưới dạng TABLE – lexu
- "đối số được cung cấp không phải là tài nguyên kết quả MySQL hợp lệ" :( –