我有两个数据库表。在第一个表中,我保留了用户的详细信息,在第二个表中,我将电子邮件作为第一个表中的外键传递,并将地址保留在第二个表中。我想将一个用户的国家/地区与所有其他用户匹配,并检索匹配的元组,但我不想要与所有其他用户匹配的用户的详细信息。请帮助我这方面我浪费了两天时间,非常感谢你的帮助。贝娄是我的桌子。
Fisrt表
CREATE TABLE user(
id_user int NOT NULL,
email varchar(256) UNIQUE,
password varchar(50) DEFAULT NULL,
dateOfBirth varchar(20) DEFAULT NULL,
Gender varchar(10) DEFAULT NULL,
PRIMARY KEY (id_user)
)
1 ta.ahmadzai tariq 12/1/1996 Male
2 sa.ahmadzai Sadiq 1/3/1998 Male
3 ba.ahmadzai Bari 12/1/1999 Male
4 ma.ahmadzai Mohammand 12/1/2000 Male
第二张表
CREATE TABLE address(
id_address int NOT NULL,
email varchar(256) NOT NULL,
address varchar(50) DEFAULT NULL,
road varchar(20) DEFAULT NULL,
City varchar(10) DEFAULT NULL,
Country varchar(10) DEFAULT NULL,
PRIMARY KEY (id_address),
CONSTRAINT id_AddUser FOREIGN KEY (email) REFERENCES user (email) ON DELETE NO ACTION ON UPDATE NO ACTION
)
10 sa.ahmadzai Colombo 74 Colombo6 Sri Lanka
20 ba.ahmadzai Kandy 80 KandyTown Sri Lanka
50 ma.ahmadzai Galle 20 Fort Sri Lanka
我能够编写一个查询,但它似乎完全错误我的需要。
SELECT country
FROM address
WHERE email like 'ta.ahmadzai' NOT IN
(SELECT DISTINCT email
FROM "user"
WHERE country like 'India'
)
我想在PHP脚本中使用该查询,我将把电子邮件和国家/地区作为变量传递。
答案 0 :(得分:0)
试试这个,下面的查询可能对你有帮助。
SELECT * FROM users u, address a WHERE a.email=u.email AND a.country LIKE (SELECT country FROM address WHERE email = ? );