【发布时间】:2013-08-23 13:00:11
【问题描述】:
我必须查询给定的表。我无法更改表结构。基本上是这样的:
user
-- ---------- ----
id address_id name
address
-- ---
id zip
language
-- ----
id lang
其中 语言 条目的id 与用户的 id 相同。它的主键基于id 和lang。 用户上的address_id可以是null。
现在我想通过一个查询来获取所有内容。我试过了:
SELECT
p.name,
l.lang,
a.zip
FROM user p
JOIN language l ON p.id = l.id
LEFT JOIN address a ON p.address_id = a.id
WHERE p.id = :id
LIMIT 1
这实际上有效,除了一件事:它只返回连接到用户的第一种语言。如何检索所有语言?
编辑
我正在使用 PHP PDO 检索结果:
$value = $stmt->fetch(PDO::FETCH_ASSOC);
会不会有错误?
【问题讨论】:
-
删除
LIMIT 1? -
不应该是
p而不是e吗? -
我已经试过了。不幸的是,这不会改变结果集。
-
@ExplosionPills 正确。修正了这个问题,我从一个更大的查询中减少了这个问题。
-
那么,在语言表中是否有多个记录与特定的
id?