Exactly as you have described it:
SELECT
*
FROM
cart
JOIN dkb
ON cart.id = dkb.id
JOIN cdkb
on cart.id = cdkb.id
WHERE
cart.cookieId = GetCartId()
regarding OUTER JOINs, here is a link discussing them:
if you do:
SELECT
cart.id cart_id,
dkb.id dkb_id,
cdkb.id cdkb_id,
cart.*,
dkb.*,
cdkb.*
FROM
cart
LEFT OUTER JOIN dkb
ON cart.id = dkb.id
LEFT OUTER JOIN cdkb
on cart.id = cdkb.id
WHERE
cart.cookieId = GetCartId()
That means you will always get every matching record from cart, information from the dkb and cdkb tables will only appear if records with that ID are available in them, otherwise their fields will be NULL. I used a LEFT OUTER JOIN because I want all the records from the cart table, which is on the LEFT side of the ON condition.
A FULL OUTER JOIN would mean that either the cart.* or the dkb or cdkb fields could be NULL.
It definitely takes awhile to get a feel for the OUTER JOIN syntax, as you can tell since I still got it wrong explaining it (the first time). :-)