Mysql запрос к 2-м таблицам не проходит

207
23 апреля 2022, 07:40

Есть зависимые select поля для выбора марки и моделей авто.

Запрос делаю так, но он выводит только модели из БД, а марки нет, как исправить?

Таблица mark содержит поля id, title (название марки)

Таблица model содержит поля id. mark_id, title (модели)

При совпадении полей таблицы mark.id и model.mark_id нужно чтобы выводились все совпадения моделей из model.title

Пробовал так.

$marks = R::findAll('mark', 'ORDER BY title ASC');    
        $model = R::findAll('model', 'ORDER BY title ASC');

И так.

SELECT
  mark.id, 
  mark.title, 
  mark.title AS mark,
  model.title AS model
FROM mark
   INNER JOIN mark ON mark.id = model.mark_id
   INNER JOIN model ON model.mark_id = model
LEFT JOIN rent_photo ON rent.id = rent_photo.rent_id
Answer 1

Предыдущий комментатор был практически прав.

Но у него была ошибка с одним полем таблицы model, вместо name у Vovvka стоит title.

$model = R::getAssoc('SELECT model.id, model.title AS model,mark.title AS Mark
FROM model
INNER JOIN mark
ON model.mark_id = mark.id');

Укажите на странице проверку print_r($model);

У вас должны выйти на страницу все марки и модели по ключам.

Answer 2
CREATE TABLE mark
(
    Id INT PRIMARY KEY AUTO_INCREMENT, 
    title VARCHAR(20) NOT NULL
);
 
CREATE TABLE model
(
    Id INT PRIMARY KEY AUTO_INCREMENT,
    mark_id INT,
    name VARCHAR(20) NOT NULL,
    FOREIGN KEY (mark_id) REFERENCES mark(Id)
);

SELECT model.id, model.name AS Model,mark.title AS Mark
FROM model
INNER JOIN mark
ON model.mark_id = mark.id;

OUTPUT

+----+----------+--------+
| id | Model    | Mark   |
+----+----------+--------+
|  1 | X5       | BMW    |
|  2 | X4       | BMW    |
|  3 | camry    | Toyota |
|  4 | Ravon r3 | Nexia  |
|  5 | Ravon r4 | Nexia  |
|  6 | Ravon r2 | Nexia  |
+----+----------+--------+

Рекомнедую посетить Joins in sql и изуть детальнее

READ ALSO
Какие должны быть таблице в базе данных при создании одностраничного сайта?

Какие должны быть таблице в базе данных при создании одностраничного сайта?

Я думал разбить таблицы в базе данных по секциям ( header, content , footer) или по определенным фрагментам( например , если несколько карточек товаров...

88
Отрицательный оператор LOCATE в sql запросе

Отрицательный оператор LOCATE в sql запросе

в sql есть оператор LOCATE() для поиска подстроки в столбце базы данных

97
Неожиданный токен

Неожиданный токен

Найдено 3 ошибок при анализе

236
Не работает Distinct в SQL

Не работает Distinct в SQL

пытаюсь составить такой запрос для вывода данных, где хочу вывести на экран бригаду, имя и фамилию работника, адрес, тип работы, дату начала...

247