【问题标题】:Select * from 2 tables where CatergoryID's are 1从 CategoryID 为 1 的 2 个表中选择 *
【发布时间】:2019-04-10 22:09:17
【问题描述】:

我有这些表:

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。结果:

【问题讨论】:

  • 到目前为止你尝试了什么???
  • 我试图加入它们或在一个联合中选择它们,它返回行很好,但 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 中搜索它。
  • 数据库中怎么会有链接?

标签: mysql database join


【解决方案1】:

你可能想要一个 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

Id 冲突是什么意思?你可以这样做

SELECT EventID, null AS ActivityId, Price
FROM Events
WHERE CategoryId = 1
UNION ALL
SELECT null, ActivityID, Price
FROM Activity
WHERE CategoryId = 1

【讨论】:

  • 看起来不错。当我点击 EventID 时,我得到属于它的行,但是当我点击 ActivityID 时,我得到结果 0 行,这怎么可能?
  • @codGmer - 点击哪里?您还没有提到您正在使用哪个软件进行查询...
猜你喜欢
  • 2014-03-12
  • 1970-01-01
  • 2023-03-26
  • 2023-03-27
  • 2015-11-03
  • 2020-10-01
  • 1970-01-01
  • 2012-11-03
  • 2016-09-19
相关资源
最近更新 更多