Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chọn ngẫu nhiên truy vấn con trong MySQL khi sử dụng GroupBy

Thật buồn cười, cuối cùng tôi đã làm cho nó hoạt động bằng cách thêm các cột mà chúng tôi muốn trong truy vấn con trong một nhóm group by , như thế này:

SELECT 
    country.guid,
    country.Name AS 'country name',
    country.Area_id,
    country_cities.guid,
    country_cities.name AS 'city name',
    country_streets.guid,
    country_streets.name AS 'country streets',
    memebers.name.guid,
    memebers.name AS 'street members'
FROM
    country
        JOIN
    (SELECT 
        RAND() as seed, country_id, guid, name
    FROM
        street_members GROUP BY seed, name, guid,country_id ORDER BY seed) memebers ON memebers.country_id = country.id
        JOIN
    country_cities ON country_cities.country_id = country.id
        JOIN
    country_streets ON country_streets.city_id = country_cities.id
GROUP BY country.guid , country_cities.guid , country_streets.guid
ORDER BY RAND()
LIMIT 0 , 100

Không kiểm tra toàn bộ yêu cầu, nhưng đã thử nghiệm thủ thuật trên một trong những DB của tôi và nó hoạt động.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kiểm tra xem giá trị có tồn tại trong cơ sở dữ liệu MySQL hay không

  2. Nhận các giá trị Tối thiểu và Tối đa với một truy vấn MySQL với Group BY

  3. Sử dụng ALTER để thả một cột nếu nó tồn tại trong MySQL

  4. Kết nối với Cơ sở dữ liệu MySQL bằng Ứng dụng iOS của tôi

  5. Nhập SOLR-delta không hoạt động nhưng nhập đầy đủ hoạt động tốt