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

jak zkombinovat tabulky se vztahem 1 až mnoho do 1 řádku záznamu

Tajemství je připojit se na tbl_equipwarranty dvakrát - pomocí 2 různých aliasů. Jeden pro servisní záruku a jeden pro záruku na produkt. Můžete to provést zadáním typu služby jako součást spojení. Následující používá spojení ANSI, takže pravděpodobně bude fungovat ve firebirdu a mysql:

SELECT
    a.equipmentid,
    a.codename,
    a.name,
    a.labelid,
    a.ACQUISITIONDATE,
    a.description,
    a.partofid,
    w1.warrantyid as serviceidwarranty, 
    w1.startdate, 
    w1.enddate,
    w2.warrantyid as productidwarranty, 
    w2.startdate, 
    w2.enddate
FROM TBL_EQUIPMENTMST a 
INNER JOIN tbl_equipwarranty w1 
    ON w1.equipmentid = a.equipmentid AND w1.servicetype = 'service'
INNER JOIN tbl_equipwarranty w2 
    ON w2.equipmentid = a.equipmentid AND w2.servicetype = 'Product'
WHERE
a.partofid = '57'


  1. Oracle – Jaký soubor TNS Names používám?

  2. neinicializovaná konstanta Mysql2::Client::SECURE_CONNECTION

  3. UnboundLocalError:místní proměnná 'cursor' odkazovaná před přiřazením

  4. Visual Studio:ContextSwitchDeadlock