Har följande join där de 2 joinade tabellena order_internkom och order_restinfo kan sakna rader ... Jaha, men om jag skriver en SQL-sats, hur skall jag veta om den gör det du vill? Tyvärr rätt fräsch på Joins men löste det ... En sak till. Ingen större idé med left joins om man i where satsen säger att någonting från den joinade tabellen inte får vara null. Ex:Joinproblem i mySql .....
Det finns förklaringar på MySql.com men jag får inte till det .....
<code>
SELECT
`order_grund`.`order_id`,
`order_grund`.`grupp_id`,
`order_grund`.`kund_id`,
`order_grund`.`referens`,
`order_grund`.`user_id`,
`order_grund`.`com`,
`order_grund`.`information`,
`order_grund`.`orderdatum`,
`order_grund`.`leveransdatum`,
`order_grund`.`status_id`,
`order_grund`.`plockad`,
`order_grund`.`bekraftad`,
`order_internkom`.`internkom`,
`order_restinfo`.`restinfo`
FROM
`order_grund`
LEFT OUTER JOIN `order_internkom` ON (`order_grund`.`order_id` = `order_internkom`.`order_id`)
LEFT OUTER JOIN `order_restinfo` ON (`order_grund`.`order_id` = `order_restinfo`.`order_id`)
WHERE
(`order_grund`.`order_id` = 3100) AND
(((`order_internkom`.`order_id` IS NULL) OR
(`order_internkom`.`order_id` IS NOT NULL)) AND
((`order_restinfo`.`order_id` IS NULL) OR
(`order_restinfo`.`order_id` IS NOT NULL)))
</code>Sv: Joinproblem i mySql .....
Vad menar du när du skriver att du inte "får till det"? Säger MySQL att det är syntaxfel eller gör satsen inte det du vill?Sv: Joinproblem i mySql .....
Följande funkar .... hade fel referens in WHERE satsen .... mitt pucko ! :o(
<code>
SELECT
`order_grund`.`order_id`,
`order_grund`.`grupp_id`,
`order_grund`.`kund_id`,
`order_grund`.`referens`,
`order_grund`.`user_id`,
`order_grund`.`com`,
`order_grund`.`information`,
`order_grund`.`orderdatum`,
`order_grund`.`leveransdatum`,
`order_grund`.`status_id`,
`order_grund`.`plockad`,
`order_grund`.`bekraftad`,
`order_internkom`.`internkom`,
`order_restinfo`.`restinfo`
FROM
`order_grund`
LEFT OUTER JOIN `order_internkom` ON (`order_grund`.`order_id` = `order_internkom`.`order_id`)
LEFT OUTER JOIN `order_restinfo` ON (`order_grund`.`order_id` = `order_restinfo`.`order_id`)
WHERE
(`order_grund`.`kund_id` = 3100)
</code>Sv: Joinproblem i mySql .....
<code>
select t1.id, t2.id
from t1 left join t2 on t1.id=t2.t2id
where t2.id is not null
</code>
I detta fall kan man ju lika gärna använda en inner join.
/Kalle