sql >> Databáze >  >> RDS >> Mysql

spojit jeden řádek se všemi řádky a vrátit všechny řádky

Použití CROSS JOIN:-

SELECT
    o.id_outlet,
    s_main.periode,
    o.branch, 
    count(msisdn)
FROM
(
    SELECT DISTINCT SUBSTRING(date,1,7) AS periode
    FROM sales
) s_main 
CROSS JOIN outlet o
LEFT OUTER JOIN sales s
ON s_main.periode = SUBSTRING(s.date,1,7)
AND o.id_outlet = s.id_outlet
WHERE (o.STATUS LIKE 'STREET%')
GROUP BY s_main.periode, o.branch, o.id_outlet

Pokud máte tabulku s daty, můžete ji použít spíše než dílčí dotaz k získání dat (což také zabrání potenciálnímu problému, že ve výsledcích nebude datum za měsíc, kdy byl žádný prodej nulový) .



  1. Nedefinovaná chyba offsetu v php při importu CSV

  2. SQL Server dotaz vyberte 1 z každé podskupiny

  3. Přejmenujte tabulku nebo pohled Oracle

  4. Jaký je rozdíl mezi Oracle a Mysql při interpretaci Create Database?