sql >> Database >  >> RDS >> Mysql

hoe tabellen met 1 op veel relaties te combineren in 1 regel record

Het geheim is om twee keer deel te nemen aan tbl_equipwarranty - met 2 verschillende aliassen. Een voor de servicegarantie en een voor de productgarantie. U kunt dit doen door het servicetype op te geven als onderdeel van de join. Het volgende maakt gebruik van ANSI-joins en zal dus waarschijnlijk werken in firebird en 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. Kijken naar een tafel voor verandering in MySQL?

  2. ORA-01652:kan tijdelijk segment niet uitbreiden met 128 in tabelruimte SYSTEEM:Hoe verlengen?

  3. Waarom kan ik geen bindvariabelen gebruiken in DDL/SCL-instructies in dynamische SQL?

  4. Selecteer query in twee tabellen in MySQL