我有一个包含两个表的数据库:members
和profilefields
。
members
包含以下列:ID, name, email
profilefields
包含以下列:ID, field1, field2, etc.
我想根据name
email
中每行的members
和profilefields
我认为这是它的工作原理,但我不知道如何进行查询:
从profilefields
获取field1 = X
和field2 = Y
的ID
从会员那里获取这些ID的姓名和电子邮件
我真的很陌生,所以我非常感谢你的帮助。
答案 0 :(得分:4)
这应该可以解决问题:
SELECT
m.name,
m.email
FROM
members m
INNER JOIN profilefields pf ON
m.ID = pf.id
WHERE
pf.field1=X AND
pf.field2=Y
我们在INNER JOIN
子句中使用FROM
来链接id
字段中的表格。过滤器进入WHERE
子句,您想要带回的字段在SELECT
子句中。
答案 1 :(得分:3)
如果这些表基于ID
相关SELECT m.name, m.email
FROM members m
JOIN profilefields p
ON m.ID=p.ID
AND p.field1=X
AND p.field2=Y
答案 2 :(得分:2)
您可以使用in
运算符:
SELECT name, email
FROM members
WHERE id IN (SELECT id
FROM profilefields
WHERE field1 = 'X' and field2 = 'Y')
答案 3 :(得分:1)
你可以这样做:
Select ID, name, email from members where ID in ( Select id from profilefields where field1 = x and field2 =y)