【发布时间】:2014-07-25 17:17:17
【问题描述】:
我有3个表,书表是主表,女性和男性是次要的,我需要通过条件加入第二和第三。
示例书:
+------+---------+----------+
| b_id | b_title | b_author |
+------+---------+----------+
| 1 | First | 3 |
| 2 | Second | 1 |
| 3 | Third | -4 |
| 4 | test | -3 |
+------+---------+----------+
男:
+------+--------+
| m_id | m_name |
+------+--------+
| 1 | John |
| 2 | Jim |
| 3 | Jessy |
| 4 | Mike |
| 5 | Tom |
+------+--------+
女性:
+------+--------+
| f_id | f_name |
+------+--------+
| 1 | Sarah |
| 2 | Shanon |
| 3 | Nina |
| 4 | Shina |
| 5 | Mary |
+------+--------+
现在我需要从书中选择,当 b_author 为正时,从男表中选择,而 b_author 从女表中选择。
SELECT b_id,b_title, IF(b_author > 0,m_name,f_name) AS 'b_author' FROM book -- how make join here.
【问题讨论】:
-
更重要的是,这是格式化数据库的一种糟糕方式。为什么不只是有一个“作者”表,其中有一列指定男性或女性?然后使用一个外键(在本例中为 author_id),您可以轻松地将表连接在一起。
-
@ahjohnston25 我不能使用其他桌子,因为公司之前设计的桌子。