也許我錯過了一些愚蠢的,但...
我在M-到-M的關係三個表:MySQL的左連接返回空結果
CREATE TABLE tbl_users (
usr_id INT NOT NULL AUTO_INCREMENT ,
usr_name VARCHAR(64) NOT NULL DEFAULT '' ,
usr_surname VARCHAR(64) NOT NULL DEFAULT '' ,
usr_pwd VARCHAR(64) NOT NULL ,
usr_level INT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (usr_id)
) ENGINE = InnoDB;
CREATE TABLE tbl_houses (
house_id INT NOT NULL AUTO_INCREMENT ,
city VARCHAR(100) DEFAULT '' ,
address VARCHAR(100) DEFAULT '' ,
PRIMARY KEY (house_id)
) ENGINE = InnoDB;
CREATE TABLE tbl_users_houses (
user_id INT NOT NULL ,
house_id INT NOT NULL ,
INDEX user_key (user_id),
FOREIGN KEY (user_id) REFERENCES tbl_users(usr_id)
ON DELETE CASCADE
ON UPDATE CASCADE,
INDEX house_key (house_id) ,
FOREIGN KEY (house_id) REFERENCES tbl_houses(house_id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE = InnoDB;
到鏈路表我有兩個記錄:
user_id house_id
1 1
1 2
現在,嘗試選擇所有的房子:
select * from tbl_houses AS H
left join tbl_users_houses AS UH on H.house_id = UH.house_id
where UH.user_id = 2;
爲什麼我沒有數據而不是所有房屋?
天啊!這很尷尬!我必須修改我的SQL手冊! :-P非常感謝! – Barzo