select v.id,v.name from product p, vendor v where p.vendor = v.id;
select v.id,v.name from product p inner join vendor v on p.vendor = v.id;
select customer_id from t_order o,product p,vendor v where o.prod_id=p.id and p.vendor = v.id and v.name='wang';
case1)在单个查询中从不同的表返回类似结构的数据;case2)对单个表执行多个查询,按单个查询返回数据;
r1)union必须由两条或两条以上的select 语句组成,语句之间用关键字 union分割;r2)union 中的每个查询必须包含系统的列,表达式或聚集函数(不过各个列不需要以相同的次序给出);r3)列数量类型必须兼容:类型不必完全相同,但必须是 DBMS可以隐含地转换的类型;
problem)第一条select语句返回4行,第二条select语句返回3行,而在用union组合两条select语句后,只返回了6行而不是7行;原因是 union从查询结果集中自动去除了重复的行(在使用union时,重复的行被自动取消);solution)如果想要返回所有匹配行,可以使用 union all 而不是 union;
2.1)启用全文本搜索支持:一般在创建表时启用全文本搜索;create table 语句接收fulltext 子句,它给出被索引列的一个逗号分隔的列表;
对以上代码的分析(Analysis):
Attention) 不要在导入数据时使用fulltext: 更新索引要花时间,虽然不是很多,但毕竟要花时间。如果正在导入数据到一个新表,此时不应该启用fulltext索引。应该首先导入所有数据,然后再修改表,定义 fulltext,这样有助于更快地导入数据;A1)MySQL根据子句fulltext(note_text)的指示对它进行索引。这里的fulltext索引单个列,如果需要也可以索引多个列;A2)在定义之后,MySQL自动维护该索引。在增加、更新或删除行时,索引随之自动更新;
2.2)进行全文本搜索:使用match()函数和against()函数质心全文本搜索,match()函数指定被搜索的列,而against()指定要使用的搜索表达式;Attention)以下荔枝转自:http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/functions.html#fulltext-search2.3)全文搜索带查询扩展
全文搜索支持查询扩展功能 (特别是其多变的“盲查询扩展功能” )。若搜索短语的长度过短, 那么用户则需要依靠全文搜索引擎通常缺乏的内隐知识进行查询。这时,查询扩展功能通常很有用。例如, 某位搜索 “database” 一词的用户,可能认为“MySQL”、“Oracle”、“DB2” and “RDBMS”均为符合 “databases”的项,因此都应被返回。这既为内隐知识。
在下列搜索短语后添加WITH QUERY EXPANSION,激活盲查询扩展功能(即通常所说的自动相关性反馈)。它将执行两次搜索,其中第二次搜索的搜索短语是同第一次搜索时找到的少数顶层文件连接的原始搜索短语。这样,假如这些文件中的一个 含有单词 “databases” 以及单词 “MySQL”, 则第二次搜索会寻找含有单词“MySQL” 的文件,即使这些文件不包含单词 “database”。下面的例子显示了这个不同之处:
2.4)布尔全文索引:利用IN BOOLEAN MODE修改程序, MySQL 也可以执行布尔全文搜索,提供关于如下内容的细节(Details)
D1)要匹配的词;D2)要排斥的词;D3)排列提示(某些词比其他词更重要,更重要的词等级更高);D4)表达式分组;
s1)在索引全文本数据时,短词被忽略且从索引中排除。短词定义为那些具有3个或3个以下字符的词(如果需要,这个数字3可以修改);s2)MySQL 带有一个内建的非用词列表,这些词在索引全文本数据时总是被忽略。如果需要,可以覆盖这个列表;s3)许多词出现的频率很高,搜索它们没有用处,因此,MySQL规定了一条50%规则,如果一个词出现在 50% 以上的行中, 则将它作为一个非用词忽略,50%规则不用于 in boolean mode 中;s4)如果表中的行数少于3行,则全文本搜索不返回结果(因为每个次或者不出现,或者至少出现在50%的行中);s5)忽略词中的单引号,如,don't == dont;s6)不具有词分隔符的语言(包括日文和中文)不能恰当地返回全文本搜索结果;s7)仅在 MyISAM数据库引擎中支持全文本搜索;