ホームページ > バックエンド開発 > PHPチュートリアル > データベースステートメントに関する質問に答えるようにマスターに依頼してください。

データベースステートメントに関する質問に答えるようにマスターに依頼してください。

WBOY
リリース: 2016-06-23 14:04:39
オリジナル
764 人が閲覧しました

SELECT `id` , `time` , `title`FROM `think_infor`WHERE `type` LIKE '$k-%'			UNION ALL			SELECT `id` , `time` , `title`FROM `think_infor2`WHERE `type` LIKE '$k-%'			ORDER BY `time` DESCLIMIT 0,6
ログイン後にコピー


このステートメントを使用して、表 1 と表 2 の最新の 6 つの情報をクエリします。しかし、レコードがどのテーブルから返されたかをどのように判断するのでしょうか?
それとも、これを実現する他の方法はありますか? 複数回クエリを実行したくありません


ディスカッションに返信 (解決策)

テーブル名だけを持ってくることはできませんか?

しかし、表 1 と表 2 から最新の 6 つの情報を取得できますか?

SELECT A.id AS aid 、A.time AS atime 、A.title AS atitle 、B.id AS bid 、B.time AS btime 、B.title AS btitle
FROM think_infor AS A、think_infor2 AS B
WHERE A .type LIKE '$k-%' AND B.type=A.type
ORDER BY A.time DESC LIMIT 0,6

SELECT A.id AS aid 、A.time AS atime 、A.title AS atitle、B .id AS bid 、 B.time AS btime 、 B.title AS btitle
FROM think_infor AS A、think_infor2 AS B
WHERE A.type LIKE '$k-%' AND B.type=A.type
ORDER……


これはほぼ同じですが、テーブル A のレコードには重複レコードが含まれます

SELECT `id` , `time` , `title`, 1 as cpfromFROM `think_infor`WHERE `type` LIKE '$k-%'			UNION ALL			SELECT `id` , `time` , `title` , 2 as cpfromFROM `think_infor2`WHERE `type` LIKE '$k-%'			ORDER BY `time` DESCLIMIT 0,6
ログイン後にコピー

このステートメントはあまり明確ではありません

2 階の yiwusuo からの返信を引用します: SELECT A.id AS aid , A. time AS atime 、A .title AS atitle、B.id AS bid、B.time AS btime、B.title AS btitle
think_infor AS A、think_infor2 AS B から
WHERE A.type LIKE……
A.time で注文DESC に count(A.id)=1 が続きます
繰り返しはありませんか

私自身も混乱しているので、言いたいことだけを言います


同じテーブル A と B があります構造はあるがデータが異なる、フィールド `type` を同時にファジークエリし、2 つのテーブルの条件を満たす最初の 6 レコードを選択したい (`time` に従ってソート)

と書くことはできませんか?自分自身ですか?

SELECT `id` , `time` , `title`, 'think_infor' as tbl_name  FROM `think_infor`  WHERE `type` LIKE '$k-%'UNIONSELECT `id` , `time` , `title`, 'think_infor2'   FROM `think_infor2`  WHERE `type` LIKE '$k-%'ORDER BY `time` DESCLIMIT 0,6
ログイン後にコピー

データ ソースを区別するために出力フィールド tbl_name を追加しました
レコードの重複を避けるために、Union all が Union に変更されました。ソースを追加せずに何も繰り返しません

自分で書くことはできませんか?


SQL コード
?



123456789

SELECT `id` 、 `time` 、 `title`、 'think_infor' as tbl_name FROM `think_infor` WHERE `type` L IKE '$k-%'ユニオンセレクト ` id ` 、 `time` 、 `title`、 'think_in...

存在しないフィールドを選択することもできます

tbl_name として 'think_infor' を意味しますか?

それで、 SELECT `id` as iidd FROM `think_infor` は問題ないと思いますか?
絶対大丈夫だから名前だけ付けて

これ以上は何も言わない

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート