我有兩個表連接的問題。在這種情況下,表1(預訂表)和表2(預訂條目)。mySQL兩張表在多個NULLS上加入LEFT
我需要一個查詢來獲取Table1中的所有行WHERE表2中的member_id(僅在此存在而不是在table1中),並且可以搜索BOTH表中的Vip_id。
SELECT vb.* , DATE_FORMAT(vb.bookingdate, '%W %D %M') bookingdate, DATE_FORMAT(vb.bookingrsvp, '%W %D %M') bookingrsvp, concat(sl.state, ' - ', sl.store) store, sl.ADD1, sl.ADD2, sl.SUBURB, sl.PHONE , ve.vip_entry_leadid
FROM vip_booking vb
INNER JOIN storelocator sl ON (vb.storeid = sl.id)
LEFT JOIN vip_entries ve ON (vb.vipid = ve.vip_id AND ve.vip_entry_leadid = '" . $_GET["leadid"] . "')
WHERE vb.vipid = " . $_GET["vipid"] . "
AND DATE(vb.bookingdate) >= CURDATE()
AND ve.vip_entry_leadid IS NULL
AND ve.vip_id IS NULL
GROUP BY vb.storeid ORDER BY sl.state, sl.store
基本上我想在這裏實現的是選擇一個特定的VIP活動,當前登錄的用戶尚未有太多的條目的所有商店部分所有預訂?如果它是一個單一的領域即。 vip_entries.vip_id = vip_booking.vipid然而,如果這是一個不同的事件,那麼用戶可以多次進入條目表?
上面的查詢有效,但我不知道我是否已經正確寫入,因爲我想使用連接並避免子查詢。
首先,將您的ve條件納入ON子句 – Strawberry
您能否解釋一下? – Bass
基本上,LEFT JOIN y ON y.id = x.id WHERE x ...與INNER JOIN y相同y ON y.id = x.id WHERE x ... – Strawberry