SQL选择语句
我需要做一个sql SELECT语句,只有在满足条件的情况下才能连接表(或从连接表中获取值),这可能吗SQL选择语句,sql,Sql,我需要做一个sql SELECT语句,只有在满足条件的情况下才能连接表(或从连接表中获取值),这可能吗 $sql = "SELECT orders.id_o, orders.user_id,orders.price, users.username FROM orders Left JOIN users ON orders.user_id = users.id ORDER BY order_date ASC"; 我有一个订单表,其中有用户ID,但我也有随机
$sql = "SELECT orders.id_o, orders.user_id,orders.price, users.username
FROM orders Left JOIN users
ON orders.user_id = users.id
ORDER BY order_date ASC";
我有一个订单表,其中有用户ID,但我也有随机生成的ID,用于作为来宾订购的用户。我想用这个ID加入orders表上的users表,但是当这个ID是随机生成的时候,我只想从order表返回值,因为用户表中没有这个ID的记录
$sql = "SELECT orders.id_o, orders.user_id,orders.price, users.username
FROM orders Left JOIN users
ON orders.user_id = users.id
ORDER BY order_date ASC";
我只有这个,它将在两个表中都存在user_id的位置写入行
$sql = "SELECT orders.id_o, orders.user_id, orders.price, users.username
FROM orders JOIN users
ON orders.user_id = users.id
ORDER BY order_date ASC";
$sql = "SELECT orders.id_o, orders.user_id,orders.price, users.username
FROM orders Left JOIN users
ON orders.user_id = users.id
ORDER BY order_date ASC";
这正是左连接的作用。要回答注释中的后续问题,可以使用
coalesce
替换从左连接返回的null
s:
SELECT orders.id_o, orders.user_id, orders.price,
COALESCE(users.username, 'Guest')
FROM orders
LEFT JOIN users ON orders.user_id = users.id
ORDER BY order_date ASC
$sql = "SELECT orders.id_o, orders.user_id,orders.price, users.username
FROM orders Left JOIN users
ON orders.user_id = users.id
ORDER BY order_date ASC";
几乎,只需更改为
left join
$sql = "SELECT orders.id_o, orders.user_id,orders.price, users.username
FROM orders Left JOIN users
ON orders.user_id = users.id
ORDER BY order_date ASC";
下面的语句应该可以做到这一点:
$sql = "SELECT orders.id_o, orders.user_id,orders.price, users.username
FROM orders Left JOIN users
ON orders.user_id = users.id
ORDER BY order_date ASC";
SELECT
orders.id_o,
orders.user_id,
orders.price,
users.username
FROM orders
LEFT JOIN users
ON orders.user_id = users.id
按顺序排序\u日期ASC左连接,而不是内部连接标题是否能获得一些创造性?可能重复,您可以重复Hammerthanks,它工作得很好。是否可以为未返回任何内容的字段设置默认值?(例如,如果随机生成的ID username字段为空,我想将默认值设置为Guest)@rtom一个优雅的方法是使用
coalesce
。请参阅我编辑的答案。
$sql = "SELECT orders.id_o, orders.user_id,orders.price, users.username
FROM orders Left JOIN users
ON orders.user_id = users.id
ORDER BY order_date ASC";