簡體   English   中英

獲取X特定行數。 MySQL查詢

[英]Get X number of specific rows. Mysql query

假設我有一個包含兩個表的數據庫:“食物”和“ whatToEat”。

我查詢“ whatToEat”並找到3行:

id    Food     username
 1    Apple      John
 2    Banana     John
 3    Milk       Linda

如果我想從“食物”表中獲取那些,我可以做這樣的事情,我猜:

SELECT * 
  FROM food 
 WHERE username='John' AND typeOfFood = 'apple' 
    OR typeOfFood = 'Banana' OR typeOfFood = 'Milk'

...但由於“ whatToEat”表將一直更改,因此可以動態編寫此代碼,還是我需要循環並針對“ whatToEat”中的每個對象逐一查詢“ food”表?

編輯

以上僅是示例,實際場景是在線游戲。 當玩家進入游戲時,他被放在“ matches_updated”表中。 該表僅保留他的名字和比賽的ID(或多個比賽,因為他可以同時出現在多個比賽中)。 當玩家獲得更新時,我想檢查他是否有任何需要更新的比賽(查詢“ matches_updated”表),然后提取數據並從“ matches”表中返回所有信息存儲有關比賽的信息。

例:

玩家Tim查詢“ mathces_updated”表,發現他有2個需要更新的新比賽:

   match_id   username
    1          Tim
    2          Tim
    2          Lisa
    1           John
    3           John

...他現在想獲取有關這些比賽的信息,該信息存儲在“比賽”表中:

match_id   match_status player1Name Player1Score Player2Name Player2Score
   1           1           John         123         Tim          12
   2           1           Lisa          4          Tim          15
   3           1           John          0          Lisa         0

我不確定我是否正確理解了這個問題。

其實這取決於查詢表有什么共同點。

因此,如果假設食物是一個普通的列,則查詢類似這樣的內容...

select * from food where food in (select food from whattoeat where username = ?)

如果能解決您的問題,請嘗試一下...

SELECT * FROM matches_updated JOIN matches
         ON matches_updated.match_id == matches.match_id
         WHERE matches_updated.user == "Tim"

-

也許您想要一個JOIN語句

SELECT * FROM food JOIN whattoeat
         ON food.username == whattoeat.username
         WHERE food.username == "John"

我很難理解您想要的結果是什么-發布有關兩個表的示例以及您查詢的期望結果可能會有所幫助。

SELECT * FROM food WHERE username='John'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM