1. 程式人生 > >mysql 外聯的where子句不同位置顯示的結果

mysql 外聯的where子句不同位置顯示的結果

在使用外聯查詢是,where字句的擺放位置不同,會插敘到不同的資訊,如下顯示

1.coupon資料表


2.coupon_data資料表


情況一:

SELECT c.*,d.gettime from coupon c LEFT JOIN coupon_data d on c.id=d.couponid where c.shop_id = 3 and d.user_id = 95;

情況一結果:


情況二:

SELECT c.*,d.gettime from coupon c LEFT JOIN coupon_data d on c.id=d.couponid and d.user_id = 95 where c.shop_id = 3 ;

情況二結果:


個人看法:

情況一中,d.user_id = 95 寫在了where的字句裡面,他是對整個查詢的結果進行了一次判斷,從而刪除沒有user_id值的資料。

情況二中,d.user_id = 95 寫在了on字句裡面,他是對coupon_data表資料的判斷,而不是對整個查詢的結果

相關推薦

mysql 外聯where子句不同位置顯示結果

在使用外聯查詢是,where字句的擺放位置不同,會插敘到不同的資訊,如下顯示1.coupon資料表2.coupon_data資料表情況一:SELECT c.*,d.gettime from coupon c LEFT JOIN coupon_data d on c.id=d.

MySQL優化-where子句優化

本文討論where子句的優化. 本例中的優化是在select中實現,同樣可以應用與Delete,Update子句. 你可能嘗試重新編寫查詢來提高演算法效能,但會犧牲可讀性.MySql自動做同樣的優化,你可以減少這個工作,而保留sql語句更可讀和可維護,MySql

mysqlwhere子句不區分大小寫

如題,mysql中的where子句在遇到字串時不區分大小寫。 因此,假設表中有兩條記錄的UserName分別為‘janet’和‘Janet’,如果執行以下語句: update table set UserEmail='[email protecte

MySQL WHERE 子句

mysql where 子句MySQL WHERE 子句我們知道從 MySQL 表中使用 SQL SELECT 語句來讀取數據。如需有條件地從表中選取數據,可將 WHERE 子句添加到 SELECT 語句中。語法以下是 SQL SELECT 語句使用 WHERE 子句從數據表中讀取數據的通用語法:SELECT

PHP MySQL Where 子句

data 發送 erro pre sele fetch 關於 tro localhost PHP MySQL Where 子句 WHERE 子句用於過濾記錄。 WHERE 子句 WHERE 子句用於提取滿足指定標準的的記錄。 語法 SELECT col

mysqlwhere查詢子句

where子句 地址 row span lec 16px 語句 bsp chang where條件子句語法格式:select * from 表名 where 條件;例如:mysql> select * from m1;+------+------+------+---

c++中switch的default問題1331,不同位置結果不同

首先明確一點default不同位置輸出是不同的: 例子; #include <iostream> using namespace std; int main() {     int a=

mysql left join on條件和where條件的位置作用及關係

on是在生成臨時表的時候使用的條件,不管on的條件是否起到作用,都會返回左表的行, where則是在生成臨時表之後使用的條件,此時已經不管是否使用了left join了,只要條件不為真的行,全部過濾掉。 --所以要寫在on條件之後

MySql 查詢同一欄位多個結果合併到一行顯示 GROUP_CONCAT

先直接給出程式碼: SELECT GROUP_CONCAT(tag) as tags FROM table_tag tt WHERE tt.id in ('1','2') 我們實現合併一個欄位的多個結果用到了mysql 函式 GROUP_CONCAT,

Mysql全文字檢索-MyISM引擎,Where子句中使用Match() Against()-布林模式

啟用全文字搜尋支援 不是所有的引擎都支援全文字搜尋,InnoDB就不支援,MyISM才支援。因此建立資料庫時,要制定資料庫引擎。另外,建立資料時,要制定一個FULLTEXT子句用來指定在該資料庫的哪個列支援全文字搜尋。 檢視productnotes表定義語句: CREATE

Mysql| where子句過濾資料(BETWEEN,IS NULL,=,!=,...)

資料庫中有大量的資料,通常只需要檢索出一部分符合特定條件的記錄.這裡就要需要指定搜尋條件. WHERE子句的位置 在同時使用ORDER BY和WHERE子句時,應該讓ORDER BY位於WHERE之後

MySQL查詢優化之where子句的優化

原文地址:https://dev.mysql.com/doc/refman/5.7/en/where-optimization.html 譯文: 8.2.1.1 where語句的優化 這一部分討論用於where語句的優化問題。示例採用select語句,但是同樣的優化也適用於delete和

不同位置同時顯示兩張點陣圖

在OnDraw(CDC*   pDC)   函式裡新增如下程式碼: void   CSDIFormView::OnDraw(CDC*   pDC)   { //   TODO:   Add   your   specialized   code   here   and/or   call   the

java 讀取資料庫mysql千餘條微博excel資料,並用swing介面顯示結果

小長假結束第一天。想要完成題目要求,要做這些:①要能從網上爬到微博資料 ②把微博資料存入mysql(因為我當時從網上爬完直接匯出為excel,故還需要多這一步,如果大家爬完資料能直接存入資料庫中就更好省事了。話說怎麼把資料從excel匯入mysql也可以寫篇博文,但本文先不提

mysql聯合索引與Where子句優化淺析

問題描述: 把排序、條件等一個一個去除來做測試,結果發現問題就出在排序部分,去除排序時,執行時間由原來的48秒變成0.3x秒。 於是,把涉及排序的欄位組成一個聯合索引alter table xx add index indexname(x1,x2,x3),經過2分鐘建立新索引之後,再執行同一個SQL語句,

MySQL的字段長度和顯示寬度

總結 pla targe 關系 repl 補充 範圍 整數 列數 MySQL類型關鍵字後面的括號內指定整數值的顯示寬度(例如,INT(11))。該可選顯示寬度規定用於顯示寬度小於指定的列寬度的值時從左側填滿寬度。顯示寬度並不限制可以在列內保存的值的範圍,也不限制超過列的指定

關於++,--在不同位置的相關運算

class 得到 再看 結束 取余 int oid sta 1=1 ++在前先做+1運算,再將+1後的結果輸出去;++在後,先將值拿出去運算,再將i的值+1,看例子。 public class HomeWork02{ public static void main(Stri

jsp頁面上讀取MySQL數據庫datetime時間顯示問題

att atd sta 實體 日期 接口 fix glib val mysql數據庫中時間字段選用了datetime,如果通過java實現在jsp頁面上顯示時間為"年-月-日 時:分"等格式,那麽如下代碼就會有不同的結果! 實體類中兩個變量: private T