【发布时间】:2012-04-19 19:14:29
【问题描述】:
3我只是想知道这种类型的查询是否可行。如果是这样,我们将不胜感激。
SELECT
field1,
field2,
field3
FROM maintable
WHERE maintable.field1 = passed_in_parameter
IF (maintable.field2 = 1) THEN
//do anything like joins
INNER JOIN widgettable on widgettable.widgetid = field3
ELSEIF (maintable.field2 = 2) THEN
//do anything like joins
INNER JOIN gizmottable on gizmottable.gizmoid = field3
END IF
我希望我正在尝试做的事情是有意义的。 总之,我需要根据原始选择中的字段值来连接不同的表。
【问题讨论】:
-
你可以
LEFT JOIN他们俩 -
不,它不是有效的 SQL 语法。
-
你想从 widgettable 或 gizmotable 中选择任何东西吗?
-
@Amit Bhargav - 我需要 widgettable.widget_name 或 gizmotable.gizmo_name
-
我想你可以做一个
INNER JOIN widgettable on widgettable.widgetid = field3 AND maintable.field2 = 1 INNER JOIN gizmottable on gizmottable.gizmoid = field3 AND maintable.field2 = 2
标签: mysql sql conditional