我有一點SQL,但我找不到方法來取回文本只是數字。 - 修改!複雜的SQL查詢問題
SELECT if(`linktype` = "group",
(SELECT contactgroups.grname
FROM contactgroups, groupmembers
WHERE contactgroups.id = groupmembers.id ???
AND contactgroups.id = groupmembers.link_id),
(SELECT contactmain.contact_sur
FROM contactmain, groupmembers
WHERE contactmain.id = groupmembers.id ???
AND contactmain.id = groupmembers.link_id)) AS adat
FROM groupmembers;
正如我現在已經改進了一下還給一些信息,但??? (感謝minitech)表明我的問題。我看不到我該如何修復...歡迎任何建議! Thansk
Contactmain (id, contact_sur, email2)
data:
1 | Peter | [email protected]
2 | Andrew| [email protected]
Contactgroups (id, grname)
data:
1 | All
2 | Trustee
3 | Comitee
Groupmembers (id, group_id, linktype, link_id)
data:
1 | 1 | contact | 1
2 | 1 | contact | 2
3 | 2 | contact | 1
4 | 3 | group | 2
而且我想列出了誰是「Comitee」的結果應該是安德魯和受託人如果我是正確的:)
如果'contactgroups.id'必須等於'groupmembers.id'但必須也等於'2',這是多餘的,我想這是你的問題可能是,太。 – Ryan
如果第二個給你正確的答案,爲什麼你不能使用那個?另外,什麼是第一個查詢給你的錯誤,你實際期望的結果是什麼?注意:我們大多數人都皺着眉頭用逗號分隔的'FROM'子句,因爲它可以確定'JOIN'條件困難 - 請使用eplicit-join語法。 –
請提供表格模式和示例數據。如果沒有表格模式,很難說清楚爲什麼你會得到文字而不是數字 –