直接用LIKE '%小貓%' AND LIKE '%小狗%'試過,不行。
創(chuàng)新互聯(lián)建站為您提適合企業(yè)的網(wǎng)站設(shè)計?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強的網(wǎng)絡(luò)競爭力!結(jié)合企業(yè)自身,進行網(wǎng)站設(shè)計及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都網(wǎng)站設(shè)計、網(wǎng)站制作, 我們的網(wǎng)頁設(shè)計師為您提供的解決方案。
SELECT * from tt1 where keywords LIKE '%小貓%' AND [keywords] LIKE '%小狗%'
得到1、3記錄
學(xué)生student表:
課程course表:
交叉連接:
結(jié)果為兩張表的笛卡爾積:
內(nèi)連接(inner join ,inner 可以省略)
顯示內(nèi)連接和隱示內(nèi)連接獲得的查詢結(jié)果是一樣的,都是A表和B表的交集(例:A.id = B.id),但是只能查到有關(guān)系的信息,如果A表的一條數(shù)據(jù)的與B表關(guān)聯(lián)的字段沒有對應(yīng)的信息(如:A.id = null),即:這條數(shù)據(jù)在B表中沒有對應(yīng)的信息,則無法獲得。
外連接(outer join,outer可以省略)
左外連接獲得的查詢結(jié)果是左邊的表A的全部信息和A,B兩張表的交集,左邊A表的全部包含A表中在B表中沒有對應(yīng)關(guān)系的信息。
右外連接獲得的查詢結(jié)果是右邊的表B的全部信息和A,B兩張表的交集,右邊B表的全部包含B表中在A表中沒有對應(yīng)關(guān)系的信息。
在PHP中求數(shù)組的交集,我們可以與PHP給我們提供的現(xiàn)成函數(shù):array_intersect(),其用法格式為:
array array_intersect(array array1,array array2[,arrayN…])
根據(jù)上述的語法格式,我們來寫一個例子:
1 ?php
2 $fruit1 = array("Apple","Banana","Orange");
3 $fruit2 = array("Pear","Apple","Grape");
4 $fruit3 = array("Watermelon","Orange","Apple");
5 $intersection = array_intersect($fruit1, $fruit2, $fruit3);
6 print_r($intersection);
7 // 輸出結(jié)果:
8 // Array ( [0] = Apple )
9 ?
本例子將返回在$fruit1數(shù)組中出現(xiàn)且在$fruit2和$fruit3中也出現(xiàn)的所有水果的名子。
使用array_intersect()函數(shù)時要注意:只有在兩個元素相等且具有相同的數(shù)據(jù)類型時,array_intersect()函數(shù)才會認
為它們是相同的,否則不能進行交集計算。array_intersect()函數(shù)返回一個保留了鍵的數(shù)組,只由第一個數(shù)組中出現(xiàn)的且在其它數(shù)組中都出現(xiàn)的
值組成。
若要求關(guān)聯(lián)數(shù)組的交集,請使用array_intersect_assoc()函數(shù),給你個簡單的例子:
1 ?php
2 $fruit1 = array("red"="Apple","yellow"="Banana","orange"="Orange");
3 $fruit2 = array("yellow"="Pear","red"="Apple","purple"="Grape");
4 $fruit3 = array("green"="Watermelon","orange"="Orange","red"="Apple");
5 $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
6 print_r($intersection);
7 // 輸出:
8 // Array ( [red] = Apple )
9 ?
array_intersect_assoc()函數(shù)語法格式如下:
array array_intersect_assoc(array array1,array array2[,arrayN…])
array_intersect_assoc()與array_intersect()基本相同,只不過他在比較中還考慮了數(shù)組的鍵。因此,只有在第一個數(shù)組中出現(xiàn),且在所有其他輸入數(shù)組中也出現(xiàn)的鍵/值對才返回到結(jié)果數(shù)組中。
mysql的語法是這樣的,首先你得創(chuàng)建一張新的表C(創(chuàng)建表按照你的需要來創(chuàng)建,這里我按照(兩個表中時間time相同(time是精確到秒的)的時候,把id這個字段的交集存到另一個新表中)你需要的來創(chuàng)建,就是只要一個id,用兩個字段來保存)。
然后代碼為:insert into 表C select a.id as id1,b.id as id2 from 表A a,表B b where a.time = b.time;這樣就可以了。。
你是要查前十個查詢結(jié)果中相同的那些記錄,而不求前十個相同記錄吧,因為這是有差別的,按照你的語句,應(yīng)該是求前者,即先求出A的前十條數(shù)據(jù),B的前十條數(shù)據(jù),再求它們的交集。
既然是求交集,那么這兩個表的關(guān)系模式應(yīng)該是相同的了,
select
a.*
from
(select
*
from
table
order
by
table.a
desc
limit
10)
as
a,
(select
*
from
table
order
by
table.b
desc
limit
10)
as
b
where
a.primary_key
=
b.primary_key
--先將兩個結(jié)果作為兩張臨時表,然后通過主鍵
primary_key來獲取交集(交集肯定就是主鍵相等的了,因為關(guān)系模式相同)