php中這個的mysql語句怎麼寫?

來源:互聯網
上載者:User

訂單表:order

訂單商品表:order_goods

也就是order_goods裡存放著order裡每個訂單裡的所有商品資訊;
我需要找出合格訂單裡有哪些商品怎麼來寫?
如:我要尋找訂單表內order_no等於20160804164336873986的訂單,並且order與order_goods裡所有欄位都列出來。

回複內容:

訂單表:order

訂單商品表:order_goods

也就是order_goods裡存放著order裡每個訂單裡的所有商品資訊;
我需要找出合格訂單裡有哪些商品怎麼來寫?
如:我要尋找訂單表內order_no等於20160804164336873986的訂單,並且order與order_goods裡所有欄位都列出來。

order_goods對於一個order_id有多個記錄因此以order_goods左連order查詢,串連查詢語句執行效率不高得最佳化下

SELECT * FROM order_goods og LEFT JOIN  order o ON o.id=og.order_id

SELECT * FROM order a JOIN IN order_goods b ON a.id=b.order_id WHERE a.order_no='20160804164336873986'大概是這樣,不知道寫錯沒有

一對多,關聯模型

看了樓上幾位的回答,應該可以滿足題主的要求了。對於有強迫症的我,我必須要說一下,題主查詢的時候一定不要用*號,欄位有多少就都寫出來,欄位名一樣的重新命名。

建議不要用join了,拆分成兩個查詢;另外盡量不要用SELECT *

我也有點強迫症了,最近一直接觸索引,一看到mysql就想到索引,我想問下要查詢的條件欄位建立索引了嗎?
還有看到上面的回答,先查詢出order表中的資料,再用迴圈去查詢每個的編號id對應的order_goods表中的資料,這樣分開查詢不會瞬間讓mysql卡死(當然了這些是資料量特別大的時候會看出來,資料量少的話用left join我也不說啥)

多表查詢。關聯

select * from order,order_goodswhere order.id = order_goods.order_idand order.id = '20160804164336873986';select * form order inner join order_goods on order.id = order_goods.order_idwhere order.id = '20160804164336873986';

上面兩種寫法都是一樣的,實現的是2個表串連.
3個表串連的寫法也類似,比如查詢ID為1的學生的課程和成績:

SELECT * FROM `student`, `score`, `course`WHERE `student`.`id` = `score`.`student_id` AND `score`.`course_id` = `course`.`id`AND `student`.`id` = 1;SELECT * FROM `student` INNER JOIN `score` ON `score`.`student_id` = `student`.`id` INNER JOIN `course` ON `course`.`id` = `score`.`course_id` WHERE `student`.`id` = 1;
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.