0

我有这个疑问,

$query = 'SELECT * FROM users where id ="'.$_SESSION['user_id'].'"'; 

我的问题是我不知道如何将它与另一个表连接起来......使用另一个 where 或“On”子句......

你能帮我看看这个语法吗?

它应该是SELECT $query FROM users,retailer ON $query.user_id=retailer.user_id ......

"SELECT users.first_name, retailer.date
FROM users AS users
LEFT JOIN retailer AS retailer ON users.user_id=retailer.user_id
WHERE users.user_id=" . $_SESSION['user_id']

谢谢!

4

3 回答 3

1

LEFT JOIN 非常简单

对于您的示例:

$query = "SELECT u.*, r.*
FROM users AS u
LEFT JOIN retailer AS r ON u.user_id=r.user_id
WHERE u.user_id=" . $_SESSION['user_id']

“AS”关键字创建别名,因此不需要为表“users”创建别名“users”。

其次,如果第二个表可能不包含与第一个匹配的匹配项,但您仍然需要显示该属性,则 LEFT JOIN 很有用 - 如果未找到匹配项,第二个表的属性将具有 NULL 值。

我不确定您的查询中是否需要 LEFT JOIN。

于 2012-08-19T19:07:43.683 回答
0
SELECT users.*, retailers.*  
FROM retailer 
LEFT JOIN users 
ON retailer.user_id=users.user_id
于 2012-08-19T19:08:04.060 回答
0

另一种方法是:

$query = "SELECT u.*, r.*
FROM users u, retailer r
WHERE u.user_id=" . $_SESSION['user_id'] . "
AND u.user_id=r.user_id";

我注意到 SO 海报倾向于使用明确的 JOIN 语言,它是更符合标准还是只是一种风格选择?我知道 LEFT OUTER JOIN 是必需的,所以这只是为了保持一致性吗?

于 2012-08-19T19:15:55.233 回答