Mysql查询从users表获取单个用户数据及其来自地址表的所有地址

时间:2017-02-21 11:05:45

标签: php mysql

我有用户表和地址表。

我需要编写一个mysql查询,如:

SELECT * FROM users 
LEFT JOIN addresses 
   ON users.user_id = addresses.user_id 
WHERE users.user_id = 32;

这个用户有多个地址,我想循环遍历php中的地址,同时循环访问下面的用户数据:

foreach($users as $user){
    echo $user['username'];
    foreach($user['address'] as $address){
      echo $address['street_address'];
    }
}

请帮我写正确的mysql查询,谢谢。

2 个答案:

答案 0 :(得分:0)

  

将地址视为单独的表格。

由于您需要地址表中的所有行,为什么不使用from addresses这样的:

select users.username,addresses.address from addresses as a right join users as u on u.user_id = a.user_id where u.user_id = 32; 

答案 1 :(得分:0)

此查询从table_address中提取所有地址,其中table_user的链接使用userid并经过验证。

SELECT tables_address.address FROM tables_address
INNER JOIN tables_user on tables_user.userid = tables_address.userid
WHERE tables_address.userid = X

我建议您使用JSON格式格式化查询结果 {"数据":[{" aaa"," bbbb"},{" aaa"," bbbb"} ,....]}然后使用PHP的json函数来处理返回数据