1

我的查询运行良好。但现在有一种情况,我必须在 case 语句中加入 2 个查询。但问题是其中一个查询已在使用。所以我的问题是如何在一个 sql 中添加这两个 sql

我原来的sql是

SELECT
tc.dentist_id,md.vendor_no,pl.pack_trans_id,tc.agent_dentist,md.company_name,md.contact,md.phone_no,sql1.image_path,sql1.metal_id,sql1.expect_more,sql1.how_long_acquire,tc.check_amt,tc.check_date_sent,tc.check_no
          FROM tbl_check tc
          LEFT JOIN tbl_mst_dentist md ON tc.dentist_id=md.dentist_id
          LEFT JOIN tbl_pack_list pl   ON tc.pack_id=pl.pack_id 
          LEFT JOIN (SELECT image_path,pack_id,metal_id,expect_more,how_long_acquire FROM
tbl_metals_list  GROUP BY  pack_id
          )sql1 ON tc.pack_id=sql1.pack_id
          WHERE tc.sale_agent_id = '3' AND tc.paying_percent !=0 

现在我必须在上面的语句中添加 2 条 sql 语句

if(tc.agent_dentist=a) select sa.* ,sm.state_code from tbl_sales_agent
as sa,tbl_mst_state as sm where sa.sales_agent_id = '3' AND
sa.state=sm.state_name else select * from tbl_mst_dentist where
dentist_id =tc.dentist_id

第二张桌子已经在使用了。有可能吗?提前致谢

4

2 回答 2

1

是的,您可以使用具有不同名称的别名。例如作为 ANY_ALIAS 的表。

SELECT *
FROM t1
JOIN t2 AS alias_a ON (alias_a.t1_id = t1.id)
JOIN t2 AS alias_b ON (alias_b.t1_id = t1.id)
于 2013-05-21T12:31:16.680 回答
0

请注意,在没有任何聚合函数的情况下,在此查询中使用 GROUP BY...

   SELECT image_path
        , pack_id
        , metal_id
        , expect_more
        , how_long_acquire 
     FROM tbl_metals_list  
    GROUP 
       BY  pack_id

......没有什么意义。也许您的意思是 SELECT DISTINCT ...?

于 2013-05-21T13:11:42.827 回答