mysql - SQL SELECT CASE 与 SELECT

标签 mysql sql select case

我的数据库 MySQL 遇到这种情况:

TABLE_A
Cod | Value1 | Value2 |Value3

TABLE_B
Cod | Value4 | Value5

TABLE_C
Cod | Value6

我使用这个查询:

SELECT
  table_a.value1 AS Number, 
  table_a.value2 AS Date, 
  table_b.name   AS Name, 
  table_b.age    AS Age 
FROM 
  table_a 
  LEFT JOIN table_c 
         ON table_a.cod = table_c.cod 
            AND table_c.value5 = 1 
  LEFT JOIN table_b 
         ON table_c.cod = table_b.cod 
WHERE value3 = 'MY_SEARCH_VALUE' 
ORDER BY table_a.cod ASC 

一切都很好,但现在我必须从 TABLE_A 中选择元素(与 TABLE_B 和 TABLE_C 连接),并与 TABLE_A 上的一个元素连接。

例如,当 TABLE_A.Cod = 'X' 时,还选择 TABLE_A.Cod ='Y'TABLE_A.Cod ='Z'TABLE_A.Cod = 'ALL_OTHERS_CODE' 使用上面的查询时,情况正好相反。

<小时/>

编辑:(从下面的OP评论中添加):

我的查询结果

SELECT
  TABLE_A.Value1 AS Number,
  TABLE_A.Value2 AS Date,
  TABLE_B.name AS Name,
  TABLE_B.age AS Age
FROM
  TABLE_A
  LEFT JOIN TABLE_C
         ON TABLE_A.Cod = TABLE_C.Cod
            AND TABLE_C.Value5 =1
  LEFT JOIN TABLE_B
         ON TABLE_C.Cod = TABLE_B.Cod
WHERE Value3 = 'DEFENDER'
ORDER BY TABLE_A.Cod ASC  

例如:(12 - 14/01/01 - John - 18)

我希望结果更像上面的结果。如果我应该尝试其他代码,例如 'DEFENDER_A' 并且我希望得到: (12, 14/01/01, 约翰18 --- 514/01/01弗兰克19)

最佳答案

像这样更改你的代码。

Select
TABLE_A.Value1 AS Number, 
TABLE_A.Value2 AS Date, 
TABLE_B.name AS Name, 
TABLE_B.age AS Age 
FROM TABLE_A LEFT JOIN TABLE_C ON TABLE_A.Cod = TABLE_C.Cod 
AND TABLE_C.Value5 =1 LEFT JOIN TABLE_B ON TABLE_A.Cod = TABLE_B.Cod 
WHERE Value3 = 'DEFENDER' 
ORDER BY TABLE_A.Cod ASC

关于mysql - SQL SELECT CASE 与 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21824784/

相关文章:

mysql - 在sql中的列值之间创建行

php - 更新日期字段时为空 - MySQL PHP

python - MySQL 和 Python 编程错误 : 1064 (42000)

php - SQL 插入 MySQL 不起作用

php - 在选择查询中从另一个表中选择全部

mysql - 从联接表中选择每组的最新数据

mysql - 在 SQL 中将一个表的一列替换为另一个表的另一列

sql - 在 SQL 中向表中添加列时得到公式的错误答案

mysql - DBMS 是否单独存储引用属性?

mysql - 如何从三个表到三列中选择数据?