У меня есть две MySQL таблицы:MySQL LEFT JOIN с условием из другой таблицы
стол-1: table_item
╔════╦═══════╦════════╦══════════╗
║ id ║ catid ║ itemid ║ itemname ║
╠════╬═══════╬════════╬══════════╣
║ 1 ║ 1 ║ 1 ║ Pen ║
║ 2 ║ 1 ║ 2 ║ Pencil ║
║ 3 ║ 1 ║ 3 ║ Sharpner ║
║ 4 ║ 2 ║ 4 ║ Book ║
║ 5 ║ 2 ║ 5 ║ Notebook ║
║ 6 ║ 3 ║ 6 ║ Pant ║
║ 7 ║ 4 ║ 7 ║ Shirt ║
╚════╩═══════╩════════╩══════════╝
стол-2: ставка-2015
╔════╦════════╦══════╦══════╗
║ id ║ itemid ║ year ║ rate ║
╠════╬════════╬══════╬══════╣
║ 1 ║ 1 ║ 2015 ║ 3.0 ║
║ 2 ║ 2 ║ 2015 ║ 5.0 ║
║ 3 ║ 5 ║ 2015 ║ 7.0 ║
║ 4 ║ 1 ║ 2016 ║ 3.5 ║
║ 5 ║ 5 ║ 2016 ║ 7.8 ║
║ 6 ║ 7 ║ 2016 ║ 20.0 ║
╚════╩════════╩══════╩══════╝
Я хочу привести, как показано ниже:
таблица результатов: за год 2015
╔══════════╦══════╦══════╗
║ itemname ║ rate ║ year ║
╠══════════╬══════╬══════╣
║ Pen ║ 3.0 ║ 2015 ║
║ Pencil ║ 5.0 ║ 2015 ║
║ Sharpner ║ null ║ null ║
╚══════════╩══════╩══════╝
, чтобы получить вышеуказанную таблицу результатов, если я запускаю ниже запрос:
SELECT i.itemname, b.rate, b.year
FROM table_item i LEFT JOIN bid-2015 b ON i.itemid=b.itemid
WHERE i.catid=1 AND b.year=2015
, то это дает мне следующий вывод:
╔══════════╦══════╦══════╗
║ itemname ║ rate ║ year ║
╠══════════╬══════╬══════╣
║ Pen ║ 3.0 ║ 2015 ║
║ Pencil ║ 5.0 ║ 2015 ║
║ Notebook ║ 7.0 ║ 2015 ║
╚══════════╩══════╩══════╝
Как могу ли я ВСПОМОГАТЬСЯ в эти таблицы с условиями, чтобы он мог выводить первую таблицу?
Я считаю, что ваш 'WHERE' оговорка проблема. –
Удалить условие i.catid = 1 –