我有查询sql进行搜索。我有两个表是内连接。这是我的表:
table_order
------------
id_order id_user_order id_user_taker status
1 2 3 done
2 2 4 done
table_user
--------------
id_user name
1 Alex
2 Jason
3 Danis
4 Lorent
我会像这样内心加入:
<?php
include'conn.php'
$qry = $conn->query("select table_order.*, table_user.name AS order_name, table_user.name AS taker_name FROM table_order INNER JOIN table_user ON table_user.id_user = table_order.id_user_order INNER JOIN table_user ON table_user.id_user = table_order.id_user_taker ");
while($data = $qry->fetch_assoc()){
echo $data['order_name'] . " " . $data['taker_name'];
}
?>
但是,无法显示。请解决我的问题。非常感谢
答案 0 :(得分:3)
当您需要两次或多次加入同一个表时,必须为表使用适当的别名
$qry = $conn->query("select
table_order.*
, a.name AS order_name
, b.name AS taker_name
FROM table_order
INNER JOIN table_user as a ON a.id_user = table_order.id_user_order
INNER JOIN table_user as b ON b.id_user = table_order.id_user_taker ");
答案 1 :(得分:0)
如果要在查询中多次使用同一个表,则需要为表名使用别名:
$qry = $conn->query("select table_order.*, table_user_o.name AS order_name, table_user_t.name AS taker_name
FROM table_order INNER JOIN table_user table_user_o ON table_user_o.id_user = table_order.id_user_order
INNER JOIN table_user table_user_t ON table_user_t.id_user = table_order.id_user_taker");
答案 2 :(得分:0)
查询中的一些更改
public List<DesiredType> getInfo() {
return daoObject.getUserInfo();
}
答案 3 :(得分:0)
看起来您需要订单和接受者的用户名以及table_order中的字段。如果是这种情况,那么您需要使用&#39; LEFT JOIN&#39;。
select too.*, tuo.name AS order_name, tut.name AS taker_name FROM table_order too left join table_user tuo on tuo.id_user=too.id_user_order left join table_user tut on tut.id_user=too.id_user_taker
答案 4 :(得分:0)
尝试以下查询
select table_order.*, user.name FROM table_user user
INNER JOIN table_order ON table_order.id_user_order = user.id_user
where table_order.id_order=1