Mysql
 sql >> база данни >  >> RDS >> Mysql

Рандомизиране Изберете подзаявка в MySQL, когато използвате GroupBy

Забавно, най-накрая успях да работи, като добавих колоните, които искахме в подзаявката в group by , така :

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

Не тествах цялата заявка, но тествах трика на една от моите DB и тя работи.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql group_concat ограничават редовете в групирането

  2. Безопасно ли е да съхранявате потребителски имена и пароли в базата данни?

  3. Къде Клауза за филтриране на редове в MySQL

  4. Изчислете делта (разлика на текущия и предишния ред) в sql

  5. Мигриране на MySQL към PostgreSQL на AWS RDS, част 1