MySQL查询两个表

时间:2014-11-13 14:26:30

标签: mysql sql database

我有一个包含两个表的数据库:membersprofilefields

members包含以下列:ID, name, email
profilefields包含以下列:ID, field1, field2, etc.

我想根据name

的查询,选择email中每行的membersprofilefields

我认为这是它的工作原理,但我不知道如何进行查询:

profilefields获取field1 = Xfield2 = Y的ID 从会员那里获取这些ID的姓名和电子邮件

我真的很陌生,所以我非常感谢你的帮助。

4 个答案:

答案 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)