Как получить данные из нескольких таблиц, если записи существуют или нет

0

У меня 3 таблицы

категория

category_id int(11) auto increment PK
name varchar(100)

Товар

category_id int(11) FK from increment 
product_id int(11) auto increment PK
Name varchar(100) 

любимец

favourite_id int(11) auto increment PK
product_id int(11) FK from product
user_id int(11) FK from user

Я хочу, чтобы все name, category name, favourite = 1 продукта, name, category name, favourite = 1 если записи существуют в таблице избранного 0 для конкретного пользователя

  • 0
    Пожалуйста, добавьте некоторые входные и выходные данные на ваш вопрос, чтобы получить правильный ответ
Теги:
join

3 ответа

0
Лучший ответ

Просто используйте LEFT JOIN:

SELECT A.Name Product_Name, B.Name Category_Name 
FROM Product A LEFT JOIN Category B
ON A.category_id=B.category_id
LEFT JOIN Favourite C
ON A.product_id=C.product_id
WHERE favourite_id=1;
0

Вы можете попробовать что-то вроде

SELECT p.'name' , c.name AS categoryName  , IFNULL(f.user_id,0), IFNULL(f.product_id ,0)
FROM Category c INNER JOIN Product p 
ON c.category_id  = p.category_id 
LEFT JOIN Favourite f 
ON f.product_id =p.product_id 
0

Попробуйте это, $user_id для конкретного пользователя

SELECT p.Name as product_name, c.Name as Category_name 
FROM Product p 
JOIN Category c ON p.category_id=c.category_id
JOIN Favourite f ON p.product_id=f.product_id
WHERE f.user_id= '$user_id';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню