Вы можете задать дб для этой информации,
момент, когда вы получите список всех продуктов, которые вы можете сделать LEFT JOIN , который может использоваться для подключения продукта, если он понравился, пользователю. Вы можете сделать что-то подобное.
SELECT CAR_VENDOR,
A.CAR_MODEL,
A.CAR_PETRO,
A.CAR_TRANSMITION,
A.CAR_HAND,
A.CAR_SPEDOMETER,
A.CAR_ENGINE_VOL,
A.CAR_CATEGORY,
A.CAR_POST_DATE,
B.USERNAME
FROM TABLE_ONE AS A
LEFT JOIN TABLE_TWO AS B ON B.FAVORITES_ID = A.ID
AND B.USERNAME = "actual user username"
Этот запрос должен делать свою работу, я не проверял, но вы можете взять в качестве идеи, где начать
только объект с предпочтением должны иметь поле имени пользователя заполнено
EDIT ----------------------------------------------- -
Учитывая, что представленный ОП представлен:
- У нас есть одна таблица, которая представляет собой список объектов (автомобилей) с их конкретными параметрами (размер двигателя, ручная работа, модель, категория и т. Д.)
- У нас есть таблица N to N, которая может подключать каждый продукт к одному или больше пользователей и каждого пользователя к одному или нескольким продуктам
- У нас, вероятно, есть таблица людей (столбец «имя пользователя» в таблице 2, который я хочу назвать «LIKES», должен быть внешним ключом, подключенным к первичному ключу PEOPLE table)
Поведение простое, мы хотим чего-то социального типа, когда человек может «продвигать» автомобиль, очевидно Мы не хотим, чтобы множители e голосов на том же автомобиле от одного и того же лица, таким образом, мы должны отключить функцию в случае, если он уже голосовал.
Мы берем пример обычной страницы, на которой человек уже проголосовал за некоторые продукты и хочет увидеть полный список.
В этом случае мы хотим, чтобы увидеть:
- Перечень пункта ПОЛНОЕ, независимо от того, что.
- Элементы, которые уже получили голос от , этот конкретный пользователь.
Один из способов обращения с этим - это соединение таблицы CARS с таблицей LIKES (для упрощения я оставляю абстракцию пользователя снаружи).
Способ использования: JOIN, соединяющий две таблицы на идентификаторе автомобиля.
Эта команда SQL вернет набор строк, которые являются комбинацией каждой строки внутри CARS, за которой следует относительное имя пользователя.
Это приведет к появлению нескольких линий для одного и того же ЦАР, по одному для каждого пользователя, которому требуется поддержка, для чего нужна бизнес-логика, чтобы справиться с проблемой показа правильной страницы.
Еще один шаг в SQL-логике - использовать LEFT JOIN.
The LEFT JOIN будет включать в себя ALL запись из первой таблицы и связать их с согласующей линии второго.
Таким образом, присоединяя CARS с LIKE на идентификаторе автомобиля И запрашивая имя пользователя, которое мы хотим, вернет полный список автомобилей (все записи слева), подключенные (и только) к записям, которые соответствуют условию, зависящему от имени пользователя ,
Пример может быть таким:
| CARS |
| ID | MODEL |
|------+---------------|
| 1 + FORD |
| 2 + OPEL |
| 3 + FERRARI |
| 4 + GM |
|----------------------|
| LIKES |
| USERNAME | CAR_ID |
|------------+---------|
| KEVIN | 3 |
| PAUL | 3 |
|------------+---------|
Если я использую простое соединение, как это:
SELECT ID, MODEL, USERNAME
FROM CARS
JOIN LIKES ON CAR_ID = ID
Она возвращает это:
| ID | MODEL | USERNAME |
| 3 | FERRARI | KEVIN |
| 3 | FERRARI | PAUL |
Это неполный
Если я себе что-то вроде этого:
SELECT ID, MODEL, USERNAME
FROM CARS
LEFT JOIN LIKES ON CAR_ID = ID
Я буду иметь это:
| ID | MODEL | USERNAME |
| 1 | FORD | NULL |
| 2 | OPEL | NULL |
| 3 | FERRARI | KEVIN |
| 3 | FERRARI | PAUL |
| 4 | GM | NULL |
Это все еще неправильно, даже если лучше.
Двойная запись для FERRARI будут удалены добавив условие объединения:
SELECT ID, MODEL, USERNAME
FROM CARS
LEFT JOIN LIKES ON CAR_ID = ID AND USERNAME = "KEVIN"
Это вернет:
| ID | MODEL | USERNAME |
| 1 | FORD | NULL |
| 2 | OPEL | NULL |
| 3 | FERRARI | KEVIN |
| 4 | GM | NULL |
Это правильный список.
После того, как я получил этот список, мне нужно, чтобы показать его пользователю, проверка
if USERNAME is not NULL then DISABLE LIKE BUTTON
(ПСЕВДОКОД)
Я надеюсь, что это полезно для кого-то
Если вы можете разместить метаданных для ваших таблиц, это облегчит кому-то ответ. –
есть две таблицы Всего автомобилей | ------ | Колонка | Тип | Null | По умолчанию | ------ | // ** Идентификатор ** // | INT (11) нет | нет | | car_vendor | varchar (20) | Нет | | car_model | varchar (20) | Нет | | car_petro | varchar (10) | Нет | | car_transmition | varchar (10) | Нет | | car_hand | int (11) | Нет | | car_spedometer | varchar (7) | Нет | | car_engine_vol | varchar (4) | Нет | | car_category | int (11) | Нет | | car_post_date | дата | Нет | Fvorites | ------ | Column | Type | Null | По умолчанию | ------ | // ** id ** // | int (11) | No | | username | varchar (20) | Нет | | избранные | int (11) | Нет | <<< запустите ключ для id collomn на табличке автомобилей. – user2145673
Просто отредактируйте свой вопрос, если вы хотите добавить код – PHPeter