mysql根据字段值选择两个不同的表

时间:2017-06-08 14:49:13

标签: mysql if-statement select

我有以下问题,我的大脑烧坏了:)

我有两个包含个人数据的表格(一个用于客户' table_a'一个用于有趣的人群' table_b')。 在第三个表格中,table_inv'两个表中都有来自invite_persons的条目(和b)。

table_inv有一个字段' invite_id'其中存储了表a或表b中的id。另一个字段' type'有价值' cust'或者'兴趣'从哪个表(a或b)中分离出来。

现在我必须从table_a / table_b获取完整数据,具体取决于字段'类型' ...

中的值

我尝试了案件,但是没有结果。

我正在寻找类似的东西:

SELECT a.id, a.created, a.userid, a.type, a.inviteid, b.name_first, b.name_last, b.zip, b.city
FROM ext_event_invites a
CASE a.type
    WHEN 'CUST' THEN
        LEFT JOIN accounts b ON a.inviteid = b.id;
    ELSE
        LEFT JOIN ext_contacts b ON a.inviteid = b.id;
END CASE
WHERE a.eventid = :eventid AND a.userid = '4711' 
ORDER BY b.name_last ASC, b.name_first ASC

有人能帮助我吗?

2 个答案:

答案 0 :(得分:0)

请试试这个。这应该有用。

SELECT a.id, a.created, a.userid, a.type, a.inviteid, b.name_first, b.name_last, b.zip, b.city
FROM ext_event_invites a
IF a.type = 'CUST' THEN
    LEFT JOIN accounts b ON a.inviteid = b.id;
ELSE
    LEFT JOIN ext_contacts b ON a.inviteid = b.id;
WHERE a.eventid = :eventid AND a.userid = '4711' 
ORDER BY b.name_last ASC, b.name_first ASC

答案 1 :(得分:0)

您可以简单地加入两个表,然后有条件地从相关表中选择数据。另一种选择如下。我认为parameters[4] = ["image_url" : imageUrl]的替代方案是'CUST'(对于'联系人'),所以如果它是别的话,你需要调整一下...

'CONT'