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

Има ли по-добър начин да получите данни от две таблици наведнъж със Sphinx/MySQL?

Наистина не можете да се разминете, ако нямате две MySQL заявки. Е, бихте могли, като ги комбинирате в едно, с UNION. Или чрез създаване на нова комбинирана „таблица“ (или изглед, или материализиран изглед) – но наистина не смятате, че усилията си заслужават. Две заявки са напълно добре - както казваш те са индексирани.

Можете да използвате един индекс на sphinx (и следователно една заявка за търсене) - като създадете нов комбиниран индекс. Тъй като казвате, че вашите ключове не са уникални, ще трябва да създадете нов синтетичен ключ.

например...

sql_query = SELECT userid*2 AS id, 1 AS table_id, firstname AS one, lastname as two FROM tellycards_user_data \
              UNION \
            SELECT (id*2)+1 as id, 2 AS table_id, name AS one, screenshot AS two FROM tellycards_ripples
sql_attr_unit = table_id

Това ви дава фалшив ключ и атрибут, за да идентифицирате от каква таблица е дошъл резултатът. Можете да използвате това, за да получите оригиналната маса, от която идва. (има много други начини да направите същото)

Това ви позволява да стартирате една заявка, можете да получите комбинирани резултати.

... НО не съм убеден, че това е добра идея. Защото ако резултатите са асиметрични, може да пропуснете резултати. Да кажем, че има 20 съвпадащи резултата от една таблица и 10 от друга. Да речем, че показвате първите 10 резултата, сега поради ограничението резултатите от втората таблица могат да бъдат скрити под първата таблица (екстремен пример, в действителност, да се надяваме, че са се смесили). Две отделни заявки, ви позволяват да гарантирате, да получите НЯКОИ резултати от всяка таблица.

... така че след всичко това. Придържайте се към това, което имате. Добре е.



  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 с помощта на PHP

  2. Mysql 5 има ли процедури за управление на йерархични данни?

  3. Структура на базата данни, включваща динамични полета

  4. mysql условно вмъкване - ако не съществува, вмъкнете

  5. Хибернация, принудително времеви клеймо да се запази/зареди като UTC