Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Użyte instrukcje SELECT mają różną liczbę kolumn (REDUX!!)

UNII (UNION i UNION ALL ) wymagają, aby wszystkie zapytania będące UNION miały:

  1. Ta sama liczba kolumn w klauzuli SELECT
  2. Typ danych kolumny musi być zgodny w każdej pozycji

Twoje zapytanie zawiera:

SELECT f.*, u1.*, u2.* ...
UNION 
SELECT fid2 FROM friends

Najłatwiejsze przepisanie, jakie mam, to:

   SELECT f.*, u.*
     FROM FRIENDS AS f
     JOIN USERS AS u ON u.uid = f.fid2
    WHERE f.fid1 = 1 
      AND f.fid2 > 1
UNION 
   SELECT f.*, u.*
     FROM FRIENDS AS f
     JOIN USERS AS u ON u.uid = f.fid1
    WHERE f.fid2  = 1 
      AND f.fid1 < 1
ORDER BY RAND()
LIMIT 6;

Opuściłeś JOIN do USERS tabeli dwa razy, ale wygląda na to, że nie używa tych informacji.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć nazwę ograniczenia w MySQL

  2. Zainstaluj MySQL na komputerze Mac

  3. Wyjaśnienie MySQL IFNULL()

  4. Funkcja agregująca w MySQL - lista (jak LITAGG w Oracle)

  5. Wyszukiwanie niewrażliwe na znaki diakrytyczne w MySQL (hiszpańskie akcenty)