1

我有这些表:

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 表),并且只显示两个表中 categoryID = 1 的项目。我将如何解决这个问题?

我试图加入它们或在一个联合中选择它们,它返回行很好,但 mysql 中的内部链接已损坏。当我单击“活动”中的第二个结果集时,id 和价格是正确的,但是当我单击 id 转到相应的 id 时,它会在生成查询时给出 0 行结果:SELECT * FROM representin_nl_-_1.Events WHERE Id = 5但那是错误的表,它应该搜索它SELECT * FROM representin_nl_-_1._newapp_shop_products_activitys WHERE Id = 5。结果:结果当我单击第一个 9050 时,它会转到正确的行,但之后的 id 是not found. 结果:在此处输入图像描述

在此处输入图像描述

4

1 回答 1

2

你可能想要一个 UNION

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

身份冲突是什么意思?你可以做这样的事情

SELECT EventID, null AS ActivityId, Price
FROM Events
WHERE CategoryId = 1
UNION ALL
SELECT null, ActivityID, Price
FROM Activity
WHERE CategoryId = 1
于 2019-04-10T22:11:44.117 回答