2
我有什麼,我敢肯定,這是一個相當補救的問題,但我不能爲我的生活得到這個簡單的連接工作。如何在多個表上執行簡單連接?
基本上,我有3個表:
- 成員(名字,姓氏),
- MEMBER_TO_GROUP(member_id,GROUP_ID)
- PAYMENTS(member_id,日期,金額)。
我期待從特定組中的成員獲取所有付款。通過僅使用兩個表格,我可以找到特定組的所有付款,無需MEMBER信息,或者我可以查找所有沒有付款信息的MEMBER信息。但是,當我嘗試添加第三個表時,將返回錯誤的數據(例如,我得到的成員不在組中)。這是我正在使用的基本查詢:
SELECT
p.*,
m.first_name,
m.last_name
FROM
members m,
payments p,
member_to_group mg
WHERE
mg.group_id = 12
AND mg.member_id = p.member_id
AND m.member_id = p.member_id
我不確定斷開連接的位置,但任何援助將不勝感激。
養成使用ANSI連接語法(如在galador的答案)的習慣。閱讀起來更容易,並且經常突出顯示您的邏輯錯誤。 –
@Nick,這是SQL89。顯式連接是SQL92 ... :-) – gbn
隱式連接(如這裏使用的連接是SQL反模式)。這種不好的語法在1992年被替換爲更容易閱讀和維護的事物,並且更不可能發生意外交叉連接。 – HLGEM