Выберите * из 2 таблиц, где CatergoryID 1 - PullRequest
1 голос
/ 11 апреля 2019

У меня есть эти таблицы:

table : _newapp_shop_products_events
+-------+-----------+-----------+-------------------+
|   EventID  |   categoryID    |   Price  |
+-------+-----------+-----------+-------------------+
|   9050    |   1    |   15.00 |
|   5048  |   2    |    12.00  |
+-------+-----------+-----------+-------------------+

table : _newapp_shop_products_categories
+-------+-----------+-----------+-------------------+
|   CategoryID  |   Category_Name    |   photo    |
+-------+-----------+-----------+-------------------+
|   1   |   Tickets    |    one.jpg   |
|   2   |   Voucher    |    two.jpg   |
+-------+-----------+-----------+-------------------+

table : _newapp_shop_products_activitys
+-------+-----------+-----------+-------------------+
|   ActivityID  |   categoryID    |   Price  |
+-------+-----------+-----------+-------------------+
|   80    |   1    |   13.00 |
|   95  |   2    |    18.00  |
+-------+-----------+-----------+-------------------+

И они связаны отношениями, категориями -> событиями, категориями -> действиями.

Я хочу отобразить события и действия(таблицы событий и действий, а не таблицы _newapp) в одном списке и отображают только элементы из обеих таблиц, например, с ID категории = 1.Как бы мне решить эту проблему?

Я пытался объединить их или выбрать оба в объединении, он возвращает строки в порядке, но внутренняя ссылка в mysql не работает.когда я нажимаю второй набор результатов из «Деятельности», идентификатор правильный и цена, но когда я щелкаю по идентификатору, чтобы перейти к соответствующему идентификатору, он дает 0 строк результата, генерируя запрос: SELECT * FROM representin_nl_-_1.Events WHERE Id = 5 Но это неправильноТаблица, он должен искать его в SELECT * FROM representin_nl_-_1._newapp_shop_products_activitys WHERE Id = 5 вместо.Результат: result Первые 9050, когда я щелкаю по нему, он переходит к правильной строке, но идентификаторы после этого not found.Результат: enter image description here

enter image description here

1 Ответ

2 голосов
/ 11 апреля 2019

Вы, вероятно, хотите СОЮЗ

SELECT 'Event' AS Type, EventID AS Id, Price
FROM Events
WHERE CategoryId = 1
UNION ALL
SELECT 'Activity' AS Type, ActivityID AS Id, Price
FROM Activity
WHERE CategoryId = 1

Что вы имеете в виду Id конфликт? Вы могли бы сделать что-то вроде этого вместо

SELECT EventID, null AS ActivityId, Price
FROM Events
WHERE CategoryId = 1
UNION ALL
SELECT null, ActivityID, Price
FROM Activity
WHERE CategoryId = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...