2 回答

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
似乎您的要求是聯(lián)接members表,但您正在聯(lián)接telephone表。只是改變他們的順序。
SELECT
`m`.*,
`t`.*
FROM
`memebers` AS `m`
JOIN `telephone` AS `t`
JOIN `memeberFunctions` AS `mf`
ON `m`.`id` = `mf`.`memeber`
AND `mf`.`function` = 32
JOIN `mitgliedTelephone` AS `mt`
ON `m`.`id` = `mt`.`memeber`;
希望這對您有所幫助。謝謝?。?/p>

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
根據(jù)此鏈接,建立連接時(shí)不應(yīng)混用這兩種符號。您用于加入的逗號 memebers as m, telephone as t以及對的后續(xù)調(diào)用inner join觸發(fā)了未知列錯(cuò)誤。
要處理它,請使用CROSS/INNER/LEFT JOIN而不是逗號。
以前,逗號運(yùn)算符(,)和JOIN都具有相同的優(yōu)先級,因此將聯(lián)接表達(dá)式t1,t2 JOIN t3解釋為((t1,t2)JOIN t3)?,F(xiàn)在JOIN具有更高的優(yōu)先級,因此該表達(dá)式被解釋為(t1,(t2 JOIN t3))。此更改會(huì)影響使用ON子句的語句,因?yàn)樵撟泳渲荒芤寐?lián)接操作數(shù)中的列,并且優(yōu)先級的更改會(huì)更改對這些操作數(shù)的解釋。
出于教學(xué)目的,我想添加查詢,因?yàn)樗鼞?yīng)該是:
SELECT m.*, t.*
FROM memebers as m
JOIN telephone as t
JOIN memeberFunctions as mf ON m.id = mf.memeber AND mf.function = 32
JOIN mitgliedTelephone as mt ON m.id = mt.memeber
由于您尚未加入t和m,因此最終結(jié)果將是笛卡爾乘積;您可能希望對其進(jìn)行修改。
希望對您有所幫助。
添加回答
舉報(bào)