-1

私は以下のように2つのテーブルを持っています:

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

4 に答える 4

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
于 2012-09-14T01:25:09.837 に答える
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できる場合もあります。値を任意の値に変更できる関数です。NULLNULLCOALESCECOALESCENULL

クリックしてデモンストレーション

于 2012-09-14T01:06:43.017 に答える
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
于 2012-09-14T01:14:14.320 に答える
-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 の回答で問題ありません。

于 2012-09-14T01:12:38.927 に答える