我有两张表格如下:
1.产品
product_id, name
1 Books A
2 Books B
3 Books C
4 Books D
5 Books E
2.liked_items
user_id, product_id
1 4
1 3
1 1
我想查询(sql)以检索结果,如下所示。 我可以在同一个查询中做什么吗?
product_id, user_id
1 1
2 0
3 1
4 1
5 0
嗨,这是我第一次在这里发帖。 希望有人能帮助我。谢谢
答案 0 :(得分:0)
试试这个,
SELECT a.product_ID,
COALESCE(b.user_id,0) `user_id`
FROM products a
LEFT JOIN liked_items b
ON a.product_ID = b.product_ID
有时liked_items.user_id
可能NULL
,因此可以使用NULL
更改结果列表中的COALESCE
,而不是COALESCE
。 NULL
是一个可以将{{1}}值更改为期望值的函数。
答案 1 :(得分:0)
SELECT
Products.product_id AS product_id,
IFNULL(liked_items.user_id,0) AS user_id
FROM Products
LEFT JOIN liked_items ON liked_items.product_id=Products.product_id
答案 2 :(得分:0)
SELECT Products.product_id,liked_items.product_id,liked_items.user_id
FROM Products
LEFT JOIN liked_items
ON Products.product_id=liked_items.product_id
答案 3 :(得分:-1)
如果您正在使用MS SQL Server,则可以像这样使用IsNull:
SELECT p.product_id, IsNull(li.user_id, 0)
FROM products p
LEFT JOIN liked_items li
ON (p.product_id = li.product_id);
如果没有,Joao或John的回答会很好。