• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

MySQL - optymalizacja zapytania iloczynu kartezjańskiego

Cloud VPS
0 głosów
1,796 wizyt
pytanie zadane 24 marca 2017 w SQL, bazy danych przez hoktaur Pasjonat (22,250 p.)
Witam

Mamy tabele:

id | name

1 | jeden

2 | dwa

itd

Czy jest możliwy bardziej optymalny sposób zapisu iloczynu kartezjańskiego tej samej tabeli:

SELECT * FROM tabela, tabela, tabela

jeszcze to jest wygląda w miarę OK ale problem się zaczyna gdy tabela jest generowana z innych tabel np.:

SELECT * FROM

(SELECT * FROM tabela t LEFT JOIN tabeladodatkowa td ON t.id = td.id),

(SELECT * FROM tabela t LEFT JOIN tabeladodatkowa td ON t.id = td.id),

(SELECT * FROM tabela t LEFT JOIN tabeladodatkowa td ON t.id = td.id)

już nie wygląda to OK, chociaż wydaje mi się ze te zapytania o generowaną tabele są cache'owane to i tak zmiana w jednym zapytaniu pociąga zmianę w innych liniach.

Pytanie jest proste czy jest możliwość to zoptymalizować?

1 odpowiedź

0 głosów
odpowiedź 24 marca 2017 przez jeremus Maniak (59,720 p.)

Nie jestem pewien czy mysql łyka sładnię z  with ( ćwiczone w mssql )

wygląda to tak :

WITH tab as (SELECT * FROM  tabela t left join tabeladodatkowa td on t.id=td.id)
select * from tab,tab

 

komentarz 24 marca 2017 przez hoktaur Pasjonat (22,250 p.)

Tu napisali że niestety nie jak cytuje

MySQL doesn't support the WITH clause (CTE in SQL Server parlance; Subquery Factoring in Oracle), so you are left with using:

  • TEMPORARY tables
  • DERIVED tables
  • inline views (effectively what the WITH clause represents - they are interchangeable)

Podobne pytania

0 głosów
2 odpowiedzi 1,351 wizyt
0 głosów
1 odpowiedź 462 wizyt
pytanie zadane 25 maja 2017 w SQL, bazy danych przez Q_Nick Mądrala (5,010 p.)
0 głosów
1 odpowiedź 317 wizyt
pytanie zadane 9 kwietnia 2020 w SQL, bazy danych przez wsnofi Bywalec (2,680 p.)

93,485 zapytań

142,417 odpowiedzi

322,765 komentarzy

62,898 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...