【发布时间】:2019-05-10 23:13:37
【问题描述】:
这就是我遇到的问题。我有两个单独的表 TableA 和 TableB,TableA 有四列,TableB 有两列。 TableA 只保存 id,而 TableB 保存 id 和字符串。所以我需要来自 TableB 的字符串,但基于 TableA 的 id
例如:
表A:
+------+------+-------+------+
| m_id | appi | mainy | desy |
+------+------+-------+------+
| 1 | 6 | 9 | 13 |
+------+------+-------+------+
| 2 | 7 | 10 | 14 |
+------+------+-------+------+
| 3 | 8 | 12 | 15 |
+------+------+-------+------+
表B
+------+-------+
| t_id | str |
+------+-------+
| 6 | dude |
+------+-------+
| 10 | bro |
+------+-------+
| 9 | lol |
+------+-------+
| 14 | homie |
+------+-------+
根据上面的表格,我需要根据 TableB 中的 id 找出实际的字符串,例如 SELECT str FROM TableB WHERE t_id = (Ids from TableA WHERE m_id=1)。所以我的预期数据应该是“dude”和“lol”,因为m_id=1 有两个 id 6 和 9,而 TableB 中的那些 id 有字符串“dude”和“lol”。如果有任何困惑,我将非常感谢您的帮助和抱歉,请告诉我,我会尽力解决。
【问题讨论】:
-
坦率地说,这个数据库设计很糟糕。您应该首先对数据进行规范化,这样您就没有一个表 (TableB),其中的数据不可预测地对应于另一个表 (TableA) 中的 3 个不同列。