SQL Query连接两个表

时间:2012-09-14 01:03:52

标签: mysql sql join

我有两张表格如下:

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

嗨,这是我第一次在这里发帖。 希望有人能帮助我。谢谢

4 个答案:

答案 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,而不是COALESCENULL是一个可以将{{1}}值更改为期望值的函数。

Click For Demonstration

答案 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的回答会很好。