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

Използваните оператори SELECT имат различен брой колони (REDUX!!)

СЪЮЗИ (UNION и UNION ALL ) изискват всички заявки, които са UNION, да имат:

  1. Същият брой колони в клаузата SELECT
  2. Типът данни на колоната трябва да съвпада на всяка позиция

Вашата заявка съдържа:

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

Най-лесното пренаписване, което имам, е:

   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;

Напуснахте ПРИСЪЕДИНЕНИЯ към USERS таблица два пъти, но изглежда не използва информацията.




  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 релационни бази данни в Ubuntu 10.10 (Maverick)

  2. Как да търсите JSON данни в MySQL?

  3. java.sql.SQLException:Неправилна стойност на низа:'\xF0\x9F\x91\xBD\xF0\x9F...'

  4. Как да върнете редове, които имат еднакви стойности на колони в MySql

  5. Изберете от една таблица, където не в друга