PHP MySQL加入表

时间:2009-06-01 14:59:29

标签: php mysql

我正在尝试创建一个目录,我有两个表,条目和位置。每个条目都可以有多个位置,所以我假设最好的想法(如果错误则更正)是创建第三个表格,我指定“链接”。例如:

Marly:France
Karla:Argentina
Smith:USA
Katie:France
Smith:United Kingdom
Katie:USA

当我想列出来自法国的人时,我会进入第三个表并拉出位置=法国的名字。到目前为止我做的一切都很好,但现在我需要从法国每个人的每个姓名的条目表中检索数据(根据第三个表格)。我很确定我以前见过这件事。有什么指针吗? :d

3 个答案:

答案 0 :(得分:1)

SELECT `entry`.*
FROM `entry`
JOIN `entry-locations` ON `entry-locations`.`entry-id` = `entry`.`name`
WHERE `entry-locations`.`location` = 'Aberdeen'

$res = mysql_query('all-that-stuff-above');
while($row = mysql_fetch_assoc($res)) {
    echo $row['name'] . "\n";
}
mysql_free_result($res);

答案 1 :(得分:1)

SELECT
    entryt.name AS name,
    locationt.location AS location
FROM locationt, entryt
WHERE locationt.location = "France"

请记住:更改我在那里使用的名称:

  • 我将条目表命名为“entryt”
  • 位置表为“locationt”

应该与居住在法国的所有人一起返回“姓名”。

很确定这会奏效。如果我错了,请纠正我。

答案 2 :(得分:0)

SELECT * FROM entry WHERE name in (SELECT name FROM links WHERE location = 'FRANCE');

我假设表名为'entry'& '链接'和列名称为'entry.name'和'links.location'。