У меня 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 для конкретного пользователя
Просто используйте 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;
Вы можете попробовать что-то вроде
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
Попробуйте это, $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';