sql >> Databasteknik >  >> RDS >> Mysql

hur man kombinerar tabeller med 1 till många relationer till 1 postrad

Hemligheten är att gå med på tbl_equipwarranty två gånger - med två olika alias. En för servicegarantin och en för produktgarantin. Du kan göra detta genom att ange servicetypen som en del av anslutningen. Följande använder ANSI joins så kommer förmodligen att fungera i firebird och 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. Hur ändrar man negativt värde till positivt i Oracle?

  2. mysql LEFT join för höger tabell maxvärde

  3. Topp 10 bästa praxis i MySQL

  4. Uppgradera PostgreSQL JSON-kolumnen till JSONB?