兩個問題:
(1)您是否嘗試過直接從MySQL命令行運行查詢?如果是這樣,它會給你你想要的結果?
(2)你能展示更多的代碼嗎?也許問題在代碼中的其他位置。
一開始嘗試這一JOIN明確查詢:
SELECT p.id, p.name
FROM p
JOIN ps
ON p.id = ps.p_id
JOIN s
ON ps.s_id = s.id
WHERE s.id = 1;
的樣本數據:
CREATE TABLE p
(
id int auto_increment primary key,
name varchar(20)
)ENGINE=InnoDB;
INSERT INTO p
(name)
VALUES
('Bob'),
('Jack'),
('John');
CREATE TABLE s
(
id int auto_increment primary key,
name varchar(30)
)ENGINE=InnoDB;
INSERT INTO s
(name)
VALUES
('blablabla'),
('Foo'),
('Foobar');
CREATE TABLE ps
(
id int auto_increment primary key,
p_id int,
s_id int,
FOREIGN KEY (p_id) REFERENCES p(id),
FOREIGN KEY (s_id) REFERENCES s(id)
)ENGINE=InnoDB;
INSERT INTO ps
(p_id,s_id)
VALUES
(1,1),
(1,2),
(2,1),
(2,2),
(3,2);
SQLFiddle demo
是什麼'mysqli_error()'說的錯誤是什麼? – Barmar
查詢中的第三個表在哪裏?它只使用2個表格。 – Barmar
懷疑: - 爲什麼在查詢中傳遞所有值時使用查詢做準備? – heretolearn