TSQL:将选择添加到左侧外部联接
抱歉,如果问题太简单,我正在自学TSQL,我不知道如何做到以下几点: 我有一个疑问:TSQL:将选择添加到左侧外部联接,tsql,join,left-join,Tsql,Join,Left Join,抱歉,如果问题太简单,我正在自学TSQL,我不知道如何做到以下几点: 我有一个疑问: SELECT table1.name, table2.city AS city, table2.province FROM table1 LEFT OUTER JOIN table2 ON table1.id = table2.id WHERE table1.name NOT LIKE 'test' ORDER BY city DESC 我想再加上另一个: SELECT table3.country FR
SELECT table1.name, table2.city AS city, table2.province
FROM table1 LEFT OUTER JOIN table2
ON table1.id = table2.id
WHERE table1.name NOT LIKE 'test'
ORDER BY city DESC
我想再加上另一个:
SELECT table3.country
FROM table3 LEFT JOIN table2
ON table3.id = table2.id
WHERE table2.city = city
所以我可以得到这个结果:
名称--城市--省--国家
我怎样才能做到
非常感谢 您可以按如下方式进行:
SELECT
table1.name,
table2.city AS city,
table2.province,
table3.country
FROM
table1
LEFT OUTER JOIN table2
ON table1.id = table2.id
RIGHT JOIN table3
ON table2.id = table3.id
WHERE
table1.name NOT LIKE 'test'
ORDER BY city DESC
只需在一条SQL语句中使用两个连接:
SELECT table1.name, table2.city AS city, table2.province, table3.country
FROM table1
LEFT OUTER JOIN table2 ON table1.id = table2.id
LEFT OUTER JOIN table3 ON table3.id = table2.countryid
WHERE table1.name NOT LIKE 'test' and table2.city = 'Cityname'
ORDER BY city DESC
(对不起,伙计们,我没有时间检查,谢谢你们的评论。代码已经修改了。)没有问题太简单了!我是一位SQL专家,忙着问一些非常基本的Java脚本问题。你也可以直接问,而不是沮丧地试图弄清楚你在网上能找到什么,只要你努力,那么每个人都是快乐的 你所要求的事实上根本不是基本的,可以用很多方式来解释。几个不同的SQL将给出几个不同的结果 首先,这部分:
WHERE table1.name NOT LIKE 'test'
使用LIKE而不使用通配符(%,)是不常见的。如果要排除完全是“测试”的记录,请不要使用like,而是使用以下命令:
WHERE table1.name <> 'test'
这当然是遗漏了这一点:
AND table2.city = city
在这种情况下,您是要将列city与文本字符串“city”匹配,还是要将其与列city匹配?如果是,该列在表1还是表2中
有一些稍微不同的方法来处理您的问题,这反过来意味着编写不同的SQL,这反过来会给您不同的答案
因此,请想一想:
AND table2.city = city